/* ===== GLOBAL ===== */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    scroll-behavior:smooth;
}

body{
    font-family:'Inter', sans-serif;
    background:#ffffff;
    color:#111;
    line-height:1.6;
}

/* ===== NAVIGATION ===== */
header{
    position:fixed;
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:25px 8%;
    background:rgba(255,255,255,0.9);
    backdrop-filter:blur(10px);
    z-index:1000;
    transition:0.3s;
}

.logo{
    font-family:'Playfair Display', serif;
    font-size:22px;
    letter-spacing:2px;
}

nav{
    display:flex;
    gap:35px;
}

nav a{
    text-decoration:none;
    color:#111;
    font-size:14px;
    letter-spacing:1px;
    text-transform:uppercase;
    position:relative;
}

nav a::after{
    content:'';
    position:absolute;
    left:0;
    bottom:-6px;
    width:0;
    height:1px;
    background:#111;
    transition:0.3s;
}

nav a:hover::after{
    width:100%;
}

/* ===== HERO ===== */
.hero{
    position:relative;
    min-height:72vh;
    display:flex;
    align-items:center;
    text-align:center;
    padding:0 6%;
    overflow:hidden;
}

.hero-bg{
    position:absolute;
    inset:0;
    background: url('img1.jpg') center/cover no-repeat;
    filter:brightness(0.55) contrast(1.05);
    transform:scale(1.02);
}

.hero-content{
    position:relative;
    width:100%;
    max-width:1100px;
    margin:0 auto;
    z-index:2;
    color: #fff;
    padding:80px 20px;
}

.hero h1{
    font-family:'Playfair Display', serif;
    font-size:64px;
    font-weight:500;
    margin-bottom:12px;
}

.hero-subtitle{
    font-size:18px;
    color:rgba(255,255,255,0.9);
    margin-bottom:28px;
    max-width:800px;
    margin-left:auto;
    margin-right:auto;
}

.hero-ctas{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

.btn{ display:inline-block; text-decoration:none; padding:12px 26px; border-radius:6px; font-weight:600; }
.btn-primary{ background:#111; color:#fff; }
.btn-primary:hover{ opacity:0.9; }
.btn-ghost{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.9); }
.btn-ghost:hover{ background:rgba(255,255,255,0.06); }

@media(max-width:768px){
    .hero{ min-height:60vh; padding:0 4%; }
    .hero h1{ font-size:36px; }
    .hero-subtitle{ font-size:15px; }
}

/* ===== SECTIONS ===== */
.section{
    padding:120px 8%;
}

.section-title{
    font-family:'Playfair Display', serif;
    font-size:34px;
    margin-bottom:60px;
}

/* ===== COLLECTION GRID ===== */
.grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    gap:40px;
}

.card{
    border:1px solid #eee;
    padding:30px;
    transition:0.4s;
    opacity:0;
    transform:translateY(40px);
    cursor:pointer;
}

.card.show{
    opacity:1;
    transform:translateY(0);
}

.card img{
    width:100%;
    margin-bottom:20px;
    border-radius:6px;
}

.card h3{
    font-family:'Playfair Display', serif;
    font-weight:500;
    margin-bottom:10px;
}

.card p{
    font-size:14px;
    color:#666;
}

/* ===== FEATURED SLIDER ===== */
.featured{
    display:flex;
    gap:30px;
    overflow-x:auto;
    padding:60px 8%;
    scroll-snap-type: x mandatory;
}

.featured .card{
    min-width:280px;
    flex:0 0 auto;
    scroll-snap-align:start;
}

/* ===== SERVICES ===== */
.services{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(250px,1fr));
    gap:50px;
}

.service-box h4{
    font-family:'Playfair Display', serif;
    margin-bottom:15px;
}

/* Services Grid Layout */
.services-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    gap:30px;
    margin-top:40px;
}

.service-card{
    padding:30px;
    border:1px solid #eee;
    border-radius:8px;
    background:#fff;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.service-card:hover{
    transform: translateY(-8px);
    box-shadow: 0 12px 24px rgba(0,0,0,0.12);
    border-color:#111;
}

.service-card h4{
    font-family:'Playfair Display', serif;
    font-size:18px;
    margin-bottom:12px;
    color:#111;
}

.service-card p{
    font-size:14px;
    color:#666;
    line-height:1.7;
}

/* ===== CONTACT ===== */
.contact form{
    max-width:600px;
}

input, textarea{
    width:100%;
    padding:15px;
    border:1px solid #ddd;
    margin-bottom:20px;
    font-family:'Inter', sans-serif;
}

button{
    padding:12px 30px;
    border:1px solid #111;
    background:white;
    cursor:pointer;
    transition:0.3s;
}

button:hover{
    background:#111;
    color:white;
}

/* ===== FOOTER ===== */
footer{
    padding:40px 8%;
    text-align:center;
    border-top:1px solid #eee;
    font-size:13px;
}

/* ===== MOBILE ===== */
@media(max-width:768px){
    .hero h1{ font-size:36px; }
    nav{ gap:20px; }
}

/* ===== MOBILE MENU ===== */
.menu-toggle{
    display:none;
    cursor:pointer;
}

.menu-toggle div{
    width:25px;
    height:2px;
    background:#111;
    margin:6px 0;
}

@media(max-width:768px){
    nav{
        position:absolute;
        top:80px;
        right:-100%;
        flex-direction:column;
        background:white;
        padding:20px;
        width:200px;
        transition:0.4s;
        box-shadow:0 5px 20px rgba(0,0,0,0.1);
    }
    nav.active{ right:8%; }
    .menu-toggle{ display:block; }
}

/* ===== MODAL & CAROUSEL ===== */
.modal{
    display:none;
    position:fixed;
    z-index:10000;
    left:0;
    top:0;
    width:100%;
    height:100%;
    overflow:auto;
    background-color: rgba(0,0,0,0.7);
}

.modal-content{
    background:#fff;
    margin:8% auto;
    padding:20px 30px;
    border-radius:8px;
    max-width:500px;
    text-align:center;
    transform: scale(0.7);
    opacity:0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

.modal-content.show{
    transform: scale(1);
    opacity:1;
}

.close{
    position:absolute;
    top:10px;
    right:15px;
    font-size:24px;
    font-weight:bold;
    cursor:pointer;
}

.carousel{
    position:relative;
    width:100%;
    overflow:hidden;
}

.carousel img{
    width:100%;
    border-radius:6px;
}

.prev, .next{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    font-size:24px;
    background:rgba(0,0,0,0.3);
    color:white;
    border:none;
    padding:8px 12px;
    cursor:pointer;
    border-radius:4px;
}

.prev{ left:10px; }
.next{ right:10px; }

.prev:hover, .next:hover{ background:rgba(0,0,0,0.6); }

/* ===== WHY ÉLAN ===== */
.why{
    padding:80px 8%;
    text-align:center;
}
.why h2{
    font-family:'Playfair Display', serif;
    font-size:36px;
    margin-bottom:20px;
}
.why p{
    max-width:700px;
    margin:0 auto;
    line-height:1.7;
    color:#555;
}
.grid .card{
    border:1px solid #eee;
    padding:30px;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    opacity:0;
    transform:translateY(40px);
    cursor:pointer;
    background:white;
    border-radius:6px;
}

.grid .card.show{
    opacity:1;
    transform:translateY(0);
}

/* Zoom & shadow on hover */
.grid .card:hover{
    transform:translateY(-10px) scale(1.03);
    box-shadow: 0 15px 30px rgba(0,0,0,0.15);
}

/* ===== MAP PIN ANIMATION ===== */
.map-container {
    position: relative;
    width: 100%;
    height: 300px;
    border-radius: 8px;
    overflow: hidden;
}

.map-pin {
    position: absolute;
    width: 40px;
    height: 40px;
    background: #f2c94c; /* subtle gold */
    border-radius: 50%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    animation: bounce 2s infinite;
}

.map-pin::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    background: white;
    border-radius: 50%;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% { transform: translate(-50%, -50%) translateY(0); }
    40% { transform: translate(-50%, -50%) translateY(-15px); }
    60% { transform: translate(-50%, -50%) translateY(-7px); }
}

/* ===== SOCIAL MEDIA ICONS ===== */
.social-icons {
    margin-top:20px;
    display:flex;
    justify-content:center;
    gap:25px;
}

.social-icons a {
    color: #555; /* subtle gray */
    font-size:20px;
    transition: color 0.3s, transform 0.3s;
}

.social-icons a:hover {
    color: #f2c94c; /* gold accent */
    transform: translateY(-3px);
}

/* ===== SERVICE ROW LAYOUT ===== */
.service-row {
    display:flex;
    align-items:center;
    gap:40px;
    margin-bottom:80px;
    flex-wrap:wrap;
}

.service-row.reverse {
    flex-direction:row-reverse;
}

.service-image {
    flex:1;
    min-height:250px;
    border-radius:8px;
    transition: transform 0.5s ease, box-shadow 0.5s ease;
}

.service-image:hover {
    transform: scale(1.03);
    box-shadow: 0 15px 30px rgba(0,0,0,0.15);
}

.service-text {
    flex:1;
    max-width:500px;
}

.service-text h4 {
    font-family:'Playfair Display', serif;
    font-size:28px;
    margin-bottom:15px;
}

.service-text p {
    color:#555;
    line-height:1.7;
}