@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Oswald:wght@500;600;700&display=swap');
:root{--ink:#111016;--cream:#fff9ee;--yellow:#ffd21c;--violet:#48256f;--pink:#d900b7;--muted:#716d75}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}.top{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,5vw);position:sticky;top:0;background:rgba(255,249,238,.95);backdrop-filter:blur(12px);z-index:20;border-bottom:1px solid #e9dfce}.brand{font:700 28px Oswald;text-decoration:none;color:var(--ink);letter-spacing:1px}.brand span{color:var(--pink)}nav{display:flex;gap:22px;align-items:center}nav a{color:var(--ink);text-decoration:none;font-weight:700;font-size:14px}.pill{background:var(--ink);color:white!important;padding:11px 18px;border-radius:99px}.navbtn{display:none;border:0;background:none;font-size:28px;cursor:pointer}.hero{min-height:760px;position:relative;display:flex;align-items:center;padding:80px max(24px,7vw);overflow:hidden;background:#101020}.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,8,18,.9) 0%,rgba(10,8,18,.68) 43%,rgba(10,8,18,.12) 75%),url('assets/bal-conflans.jpg') center/cover no-repeat;transform:scale(1.01)}.hero-copy{position:relative;z-index:1;color:white;max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-weight:700;font-size:12px;color:var(--pink)}.light{color:var(--yellow)}h1,h2,h3{font-family:Oswald,Arial,sans-serif;margin:.2em 0}h1{font-size:clamp(58px,8vw,116px);line-height:.88;text-transform:uppercase}h1 em{font-style:normal;color:var(--yellow)}h2{font-size:clamp(38px,5vw,66px);line-height:1;text-transform:uppercase}.hero-copy>p:not(.eyebrow){font-size:19px;line-height:1.65;max-width:650px;color:#f2eef4}.actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.btn{display:inline-block;padding:14px 22px;border-radius:99px;text-decoration:none;font-weight:700}.primary{background:var(--yellow);color:var(--ink)}.ghost{border:1px solid var(--ink);color:var(--ink)}.lightbtn{border-color:#fff;color:#fff}.ticker{background:var(--ink);color:white;display:flex;gap:5vw;justify-content:center;padding:18px;overflow:hidden;font:600 18px Oswald;letter-spacing:1px}.ticker span:after{content:' ✦';color:var(--yellow)}.section{padding:90px max(24px,7vw)}.section-head{max-width:780px;margin-bottom:38px}.section-head>p:last-child{color:var(--muted);font-size:17px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{padding:28px;border:1px solid #ded4c3;border-radius:20px;background:#fffdf7}.card b{font-size:12px;color:var(--pink);letter-spacing:1.5px}.card h3{font-size:28px}.time{font:700 42px Oswald;margin:10px 0}.card small{color:var(--muted)}.photo-band{min-height:500px;display:flex;align-items:flex-end;padding:70px max(24px,7vw);color:#fff;background:linear-gradient(0deg,rgba(10,8,18,.8),rgba(10,8,18,.08)),url('assets/bal-conflans.jpg') center 63%/cover no-repeat}.photo-band>div{max-width:650px}.photo-band p{font-size:18px}.dark{background:var(--ink);color:white}.dark .section-head>p:last-child{color:#c7c2cb}.calendar-wrap{background:white;border-radius:20px;overflow:hidden}.calendar-wrap iframe{width:100%;height:650px;border:0}.calendar-notice,.admin-tip{padding:22px;border:1px solid #4d4654;border-radius:16px;margin-bottom:18px;background:#1c1920}.calendar-notice h3{font-size:24px}.admin-tip{margin-top:18px;color:#d8d3dc}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery figure{margin:0;background:white;border-radius:18px;overflow:hidden;border:1px solid #e1d8ca}.gallery img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.gallery figcaption{padding:15px;font-weight:700}.lindy{display:grid;grid-template-columns:.8fr 1.2fr;gap:5vw;align-items:center;background:#f0e8da;overflow:hidden}.lindy-copy p:last-child{font-size:18px;line-height:1.7}.lindy-pics{position:relative;min-height:620px}.lindy-pics .scene{width:76%;position:absolute;right:0;top:40px;border-radius:24px;box-shadow:0 25px 60px #0003}.lindy-pics .cutout{position:absolute;z-index:2;left:-6%;bottom:-90px;width:58%;filter:drop-shadow(0 20px 25px #0004)}.cabourg{background:#22113e;color:#fff}.cabourg-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:5vw;align-items:center}.cabourg-copy h2{font-size:clamp(58px,7vw,105px);color:#fff}.cabourg-copy .lead{font-size:20px;line-height:1.55}.price{display:inline-flex;align-items:center;gap:12px;background:var(--yellow);color:#111;padding:12px 18px;border-radius:14px;font:700 38px Oswald;margin:10px 0}.price span{font:700 13px 'DM Sans';letter-spacing:1px}.team{border-left:4px solid var(--yellow);padding-left:18px;margin:22px 0}.team p{line-height:1.8}.cabourg-media{display:grid;grid-template-columns:.7fr 1.3fr;gap:14px;align-items:center}.cabourg-media img,.cabourg-media video{width:100%;border-radius:18px;box-shadow:0 25px 60px #0006}.cabourg-media video{background:#000}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:center;background:#f0e8da}.split>div:first-child p{font-size:17px;line-height:1.7}.quote{font:600 clamp(32px,4vw,58px)/1.15 Oswald;color:var(--violet)}.quote span{font-size:100px;color:var(--pink);line-height:.4}.contact{display:grid;grid-template-columns:1fr 1fr;gap:5vw;background:var(--yellow)}.contactbox{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.contactbox>a:not(.btn){font-size:20px;font-weight:700;color:var(--ink)}.contactbox .primary{background:var(--ink);color:white}footer{display:flex;justify-content:space-between;gap:20px;padding:30px max(24px,5vw);background:var(--ink);color:#bbb;font-size:13px}footer b{color:white}@media(max-width:900px){.navbtn{display:block}nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--cream);padding:22px;flex-direction:column;align-items:flex-start;border-bottom:1px solid #ddd}nav.open{display:flex}.cards,.gallery,.lindy,.cabourg-grid,.split,.contact{grid-template-columns:1fr}.section{padding:65px 22px}.hero{min-height:670px}.hero-bg{background:linear-gradient(0deg,rgba(10,8,18,.88),rgba(10,8,18,.25)),url('assets/bal-conflans.jpg') center/cover no-repeat}.hero-copy{align-self:flex-end}.lindy-pics{min-height:540px}.cabourg-media{grid-template-columns:1fr 1fr}.calendar-wrap iframe{height:560px}footer{flex-direction:column}.ticker{justify-content:flex-start;white-space:nowrap}.gallery img{aspect-ratio:16/9}}@media(max-width:560px){.top{height:68px}nav{top:68px}.hero{min-height:640px;padding:50px 22px}.cabourg-media{grid-template-columns:1fr}.lindy-pics{min-height:430px}.lindy-pics .scene{width:92%}.lindy-pics .cutout{width:65%;bottom:-45px}.price{font-size:30px}.photo-band{min-height:420px}}
.helloasso{margin-top:28px;background:#fff;border-radius:20px;overflow:hidden;border:1px solid #e8e8e8}.cabourg-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.cabourg-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery figure img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:#f5f5f5}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:760px){.cabourg-photos,.gallery,.cards{grid-template-columns:1fr}}
/* V4 — rendez-vous compacts + formulaire de contact */
.gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.gallery figure{border-radius:14px}.gallery figcaption{font-size:14px;line-height:1.35;padding:12px}.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:26px}.contact-details a{font-size:18px;font-weight:700;color:var(--ink)}.contact-form{background:#fffdf7;border-radius:22px;padding:28px;display:grid;gap:16px;box-shadow:0 18px 50px #0001}.contact-form label{display:grid;gap:7px;font-weight:700;font-size:14px}.contact-form input,.contact-form textarea{width:100%;border:1px solid #d7cdbb;border-radius:12px;padding:13px 14px;background:white;color:var(--ink);font:inherit}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form textarea:focus{outline:3px solid #ffd21c66;border-color:#b99d22}.contact-submit{border:0;cursor:pointer;background:var(--ink);color:#fff;justify-self:start;font:700 15px 'DM Sans',Arial,sans-serif}.form-note{font-size:12px;line-height:1.45;margin:0;color:#655f67}.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}@media(max-width:900px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.gallery{grid-template-columns:1fr}.contact-form{padding:20px}}

/* V4-2 — Cabourg: galerie agrandie d'environ un tiers */
.cabourg-media{grid-template-columns:1.1fr 1.3fr;gap:18px}
@media(max-width:900px){.cabourg-media{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.cabourg-media{grid-template-columns:1fr}}
.cabourg-qr{display:flex;align-items:center;gap:18px;margin-top:24px;padding:16px;background:#ffffff12;border:1px solid #ffffff35;border-radius:18px;max-width:460px}.cabourg-qr img{width:118px;height:118px;object-fit:contain;background:#fff;border-radius:10px;padding:5px;box-shadow:none}.cabourg-qr p{margin:0;line-height:1.55}.cabourg-booking{margin-top:56px;padding-top:42px;border-top:1px solid #ffffff35}.cabourg-booking h3{font-size:36px;margin-bottom:8px}.cabourg-booking>p:not(.eyebrow){color:#ddd3e7}.cabourg-widget{background:#fff}@media(max-width:560px){.cabourg-qr{align-items:flex-start}.cabourg-qr img{width:96px;height:96px}.cabourg-booking{margin-top:40px;padding-top:30px}}
/* V4-6 — Cabourg : carousel photos à la place du widget HelloAsso */
.cabourg-memories{margin-top:56px;padding-top:42px;border-top:1px solid #ffffff35}.cabourg-memories h3{font-size:36px;margin-bottom:8px}.cabourg-memories>p:not(.eyebrow){color:#ddd3e7}.cabourg-carousel{position:relative;margin-top:28px;max-width:1050px;margin-left:auto;margin-right:auto}.carousel-track{position:relative;overflow:hidden;border-radius:22px;background:#120a20;aspect-ratio:16/9}.carousel-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .45s ease;pointer-events:none}.carousel-slide.active{opacity:1;pointer-events:auto}.carousel-slide img{width:100%;height:100%;object-fit:contain;display:block}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:1px solid #ffffff70;background:#160c27cc;color:#fff;font-size:36px;line-height:1;cursor:pointer}.carousel-btn:hover{background:var(--yellow);color:#111}.carousel-btn.prev{left:14px}.carousel-btn.next{right:14px}.carousel-dots{display:flex;justify-content:center;gap:9px;margin-top:16px}.carousel-dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:#ffffff55;cursor:pointer}.carousel-dots button.active{background:var(--yellow)}@media(max-width:560px){.cabourg-memories{margin-top:40px;padding-top:30px}.cabourg-memories h3{font-size:30px}.carousel-track{aspect-ratio:4/3}.carousel-btn{width:40px;height:40px;font-size:30px}.carousel-btn.prev{left:8px}.carousel-btn.next{right:8px}}
/* V4-7 — bandeau anniversaire 30 ans, ajouté à partir de V4-6 */
.anniversary-band{padding:64px max(24px,5vw);background:#120a20;color:#fff;text-align:center}
.anniversary-inner{max-width:1500px;margin:0 auto}
.anniversary-band .eyebrow{color:var(--yellow);margin-bottom:8px}
.anniversary-band h2{margin:0 0 28px;font-size:clamp(32px,4.3vw,62px);text-transform:none}
.anniversary-visual{overflow:hidden;border-radius:26px;box-shadow:0 28px 70px #0007;border:1px solid #ffffff24;background:#09060e}
.anniversary-visual img{display:block;width:100%;height:auto}
@media(max-width:700px){.anniversary-band{padding:46px 18px}.anniversary-band h2{margin-bottom:20px}.anniversary-visual{border-radius:18px}.anniversary-visual img{width:170%;max-width:none;transform:translateX(-20.5%)}}
