*{margin:0;padding:0;box-sizing:border-box}
body{font-family:Lato,sans-serif;background:#f5f5f5;color:#333;line-height:1.6}
a{color:inherit}
nav{position:fixed;top:0;width:100%;background:rgba(58,95,138,0.9);padding:15px 10%;display:flex;justify-content:space-between;align-items:center;z-index:1000;backdrop-filter:blur(6px)}
nav .brand{color:#fff;font-weight:bold;font-size:1.2rem}
nav a{color:#fff;text-decoration:none;margin-left:25px;font-weight:bold;transition:.3s}
nav a:hover{color:#D9A86C}
section{padding:80px 10%;background:#fff;margin:80px 10% 0;border-radius:15px}
h1,h2{font-family:"Playfair Display",serif;font-size:2.6rem;color:#3A5F8A;margin-bottom:30px}
h3{font-family:"Playfair Display",serif;color:#D9A86C;margin:30px 0 10px}
.highlight-keyword{color:#D9A86C;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.hero{padding:120px 10% 80px;text-align:center;background:url('images/Vue piscine.jpg') center/cover no-repeat;color:#fff}
.hero .overlay{background:rgba(0,0,0,.45);padding:60px 0;border-radius:15px}
.hero h1{color:#fff}
.hero p{max-width:700px;margin:0 auto;font-size:1.1rem;line-height:1.8}
figure{margin:0}
figcaption{margin-top:10px;font-size:0.95rem;color:#666;text-align:center;font-family:"Playfair Display",serif;font-style:italic;letter-spacing:.02em;line-height:1.4}
.carousel-section{margin-top:40px}
.carousel{position:relative;overflow:hidden;border-radius:20px;box-shadow:0 8px 30px rgba(0,0,0,.12)}
.carousel-view{overflow:hidden}
.carousel-track{display:flex;transition:transform .6s ease-in-out}
.carousel-slide{min-width:100%}
.carousel-slide img{height:420px;object-fit:cover}
.carousel-slide img.clocher-focus{object-position:85% 50%}
.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(58,95,138,.9);color:#fff;border:none;width:44px;height:44px;border-radius:50%;font-size:1.4rem;cursor:pointer;z-index:2}
.carousel-btn.prev{left:15px}
.carousel-btn.next{right:15px}
.carousel-dots{display:flex;justify-content:center;gap:10px;margin-top:14px}
.carousel-dot{width:11px;height:11px;border-radius:50%;border:none;background:#c7c7c7;cursor:pointer}
.carousel-dot.active{background:#3A5F8A}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:20px}
.gallery-card{background:#f8f8f8;border-radius:18px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.08)}
.gallery-card img{height:220px;object-fit:cover;border-radius:0;box-shadow:none}
.gallery-card img.focus-clocher{object-position:center 80%}
.gallery-card figcaption{padding:12px 14px;font-size:.95rem;color:#555}
.room-carousel{margin-top:20px;position:relative;overflow:hidden;border-radius:20px;box-shadow:0 8px 30px rgba(0,0,0,.12)}
.room-carousel-view{overflow:hidden}
.room-carousel-track{display:flex;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.room-carousel-slide{min-width:100%}
.room-carousel-slide img{height:320px;object-fit:cover;border-radius:0;box-shadow:none;cursor:zoom-in;transition:transform .3s ease}
.room-carousel-slide img:hover{transform:scale(1.02)}
.room-carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(58,95,138,.9);color:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:1.2rem;cursor:pointer;z-index:2}
.room-carousel-btn.prev{left:10px}
.room-carousel-btn.next{right:10px}
.room-carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:12px}
.room-carousel-dot{width:10px;height:10px;border-radius:50%;border:none;background:#c7c7c7;cursor:pointer}
.room-carousel-dot.active{background:#3A5F8A}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
img{width:100%;border-radius:15px;box-shadow:0 5px 20px rgba(0,0,0,.15);display:block}
.table-wrapper{overflow-x:auto}
table{width:100%;border-collapse:collapse;margin-top:20px}
th,td{padding:14px 16px;text-align:left;border-bottom:1px solid #ddd}
th{background:#3A5F8A;color:#fff}
tr:hover{background:#f8f8f8}
.contact-card{display:grid;grid-template-columns:1fr 1fr;gap:40px}
form label{display:block;margin-bottom:8px;font-weight:700}
form input,form textarea{width:100%;padding:12px;border:1px solid #ccc;border-radius:10px;margin-bottom:18px}
form button{background:#3A5F8A;color:#fff;border:none;padding:14px 20px;border-radius:10px;cursor:pointer;font-weight:700}
form button:hover{background:#2d4971}
footer{background:#3A5F8A;color:#fff;text-align:center;padding:40px;margin-top:60px}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.86);display:none;align-items:center;justify-content:center;z-index:2000;padding:20px}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:90vh;border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.lightbox-close{position:absolute;top:18px;right:18px;background:#fff;color:#3A5F8A;border:none;border-radius:50%;width:42px;height:42px;font-size:1.3rem;cursor:pointer}
@media(max-width:900px){.grid-2,.grid-3,.contact-card{grid-template-columns:1fr}nav{padding:15px 5%}section{padding:90px 5%;margin:90px 5% 0}.hero{padding:100px 5px}.hero .overlay{padding:40px 20px}.carousel-slide img{height:280px}.room-carousel-slide img{height:240px}}