/* ========================= RESET ========================= */ *{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";color:#222;background:#ffffff;line-height:1.7}.skip-link{position:absolute;left:50%;top:0;transform:translate(-50%,-120%);background:var(--primary);color:var(--white);padding:.75rem 1rem;border-radius:999px;text-decoration:none;opacity:0;transition:transform .2s ease,opacity .2s ease;z-index:1100}.skip-link:focus{transform:translate(-50%,10%);opacity:1}/* ========================= VARIABLES ========================= */:root{--primary:#222222;--secondary:#f7f7f7;--surface:#fcfbf8;--accent:#d8c3a5;--accent-dark:#b39b7d;--white:#ffffff;--text-muted:#5d5d5d;--shadow:0 12px 35px rgba(0,0,0,.08)}/* ========================= NAVIGATION ========================= */ nav{position:fixed;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:15px 80px;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);box-shadow:0 2px 15px rgba(0,0,0,.05);z-index:1000}.logo-link img{height:65px;width:auto;transition:.3s}.logo-link img:hover{transform:scale(1.03)}.nav-toggle{display:none;border:none;background:transparent;cursor:pointer;width:44px;height:44px;position:relative;z-index:1100}.nav-toggle span{position:absolute;left:8px;right:8px;height:3px;background:var(--primary);border-radius:999px;transition:transform .3s ease,opacity .3s ease}.nav-toggle span:nth-child(1){top:12px}.nav-toggle span:nth-child(2){top:20px}.nav-toggle span:nth-child(3){top:28px}.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-menu{display:flex;align-items:center;gap:40px}nav ul{list-style:none;display:flex;gap:40px;margin:0;padding:0}nav a{text-decoration:none;color:var(--primary);font-weight:500;transition:.3s}nav a:hover,nav a:focus-visible{color:var(--accent)}nav.open .nav-menu{max-height:420px}/* ========================= HERO ========================= */ .hero{position:relative;min-height:85vh;background-image:linear-gradient(180deg,rgba(7,7,7,.3),rgba(0,0,0,.55)),url("images/accueil.jpg");background-size:cover;background-position:center;display:flex;justify-content:center;align-items:center;text-align:center}.hero-overlay{position:absolute;inset:0;background:radial-gradient(circle at top,rgba(0,0,0,.3),rgba(0,0,0,.6) 60%)}.hero-content{position:relative;z-index:2;color:white;max-width:760px;padding:32px 24px}.hero-content h1{font-size:4.8rem;font-weight:300;letter-spacing:5px;margin-bottom:24px;line-height:1.02}.hero-subtitle{font-size:1.35rem;margin-bottom:38px;line-height:1.8;opacity:.92}.btn-primary{display:inline-block;padding:16px 38px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#222;text-decoration:none;border-radius:999px;font-weight:700;letter-spacing:.03em;box-shadow:0 18px 35px rgba(216,195,165,.22);transition:.35s ease}.btn-primary:hover{transform:translateY(-4px);box-shadow:0 22px 42px rgba(216,195,165,.28)}.btn-primary:focus-visible{outline:3px solid rgba(216,195,165,.65);outline-offset:4px}/* ========================= SECTIONS ========================= */ section{padding:100px 10%}.section-title{text-align:center;margin-bottom:60px}.section-title h2{font-size:2.8rem;font-weight:300;margin-bottom:16px}.section-title h2::after{content:"";display:block;width:62px;height:3px;margin:20px auto 0;border-radius:999px;background:var(--accent)}.section-title p{color:var(--text-muted);max-width:720px;margin:auto}/* ========================= PHILOSOPHIE ========================= */ .philosophy{background:var(--surface)}.philosophy p{max-width:820px;margin:auto;text-align:center;font-size:1.15rem;line-height:1.95;color:var(--text-muted)}/* ========================= HIGHLIGHTS ========================= */ .highlights{background:var(--secondary);display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.highlight{background:white;padding:28px 24px;text-align:center;border-radius:22px;border:1px solid rgba(34,34,34,.06);box-shadow:var(--shadow);font-weight:500}.highlight h3{margin-bottom:14px}.highlight p{color:var(--text-muted);line-height:1.75}/* ========================= SERVICES ========================= */ .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card{background:white;padding:22px 22px;border-radius:24px;border:1px solid rgba(34,34,34,.06);box-shadow:var(--shadow);transition:.35s ease}.card:hover{transform:translateY(-8px);box-shadow:0 22px 40px rgba(0,0,0,.1)}.card h3{margin-bottom:18px;color:var(--primary)}.card p{color:var(--text-muted);line-height:1.8}/* ========================= CABINET ========================= */ #cabinet{background:var(--secondary)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.gallery a{overflow:hidden;border-radius:24px;background:white;box-shadow:var(--shadow);position:relative}.gallery img{width:100%;height:320px;object-fit:cover;display:block;transition:.45s ease}.gallery img:hover{transform:scale(1.04)}.gallery a::after{content:"";position:absolute;inset:0;border-radius:24px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}@media(max-width:1100px){.gallery{grid-template-columns:repeat(2,1fr)}}/* ========================= HORAIRES ========================= */ .hours-card{max-width:700px;margin:auto;background:white;border-radius:25px;padding:40px;box-shadow:var(--shadow)}.hours-card p{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #eee}.hours-card p:last-child{border-bottom:none}/* ========================= CONTACT ========================= */ .contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-bottom:50px}.contact-card{background:white;padding:38px 28px;text-align:center;border-radius:24px;text-decoration:none;color:#222;border:1px solid rgba(34,34,34,.06);box-shadow:var(--shadow);transition:.35s ease}.contact-card:hover{transform:translateY(-6px);box-shadow:0 22px 38px rgba(0,0,0,.09)}.contact-card h3{margin-bottom:18px}.contact-card p{color:var(--text-muted);line-height:1.8}.hero-content,.section-title h2,.card,.highlight,.gallery img,.contact-card,.hours-card{opacity:0;transform:translateY(20px);animation:fadeInUp .8s ease-out forwards}.hero-content{animation-delay:.2s}.section-title h2{animation-delay:.1s}.card{animation-delay:.15s}.highlight{animation-delay:.15s}.gallery img{animation-delay:.2s}.contact-card{animation-delay:.2s}.hours-card{animation-delay:.2s}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.contact-card p{color:var(--text-muted)}.map{width:100%;height:450px;border:none;border-radius:25px;box-shadow:var(--shadow)}.map-placeholder{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:440px;padding:1rem 1.2rem;margin:1rem auto 0;border:1px solid rgba(34,34,34,.14);border-radius:18px;background:rgba(255,255,255,.92);color:var(--primary);font-weight:600;text-align:center;cursor:pointer;transition:transform .24s ease,box-shadow .24s ease}.map-placeholder:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(0,0,0,.08)}.map-note{margin:.8rem auto 0;max-width:880px;padding:0 1rem;color:var(--text-muted);font-size:.95rem;line-height:1.5;text-align:center}.map-container{width:100%;max-width:1200px;margin:1.6rem auto 0;border-radius:25px;overflow:hidden}.image-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.6);padding:0;z-index:1500}.image-modal.open{display:flex}.modal-content{position:relative;display:inline-block;width:auto;max-width:60vw;max-height:90vh;background:rgba(0,0,0,0.95);border-radius:6px;padding:6px;box-shadow:0 10px 24px rgba(0,0,0,.35)}.modal-img{width:100%;height:auto;max-height:calc(90vh - 20px);display:block;margin:0;border-radius:4px;object-fit:contain}@media (max-width:768px){.modal-content{max-width:95vw;padding:4px;border-radius:4px}.image-modal{padding:0}}.modal-caption{margin-top:12px;color:#f5f5f5;text-align:center;font-size:0.95rem}.modal-close{position:absolute;top:12px;right:12px;width:38px;height:38px;background:rgba(255,255,255,.95);border:none;border-radius:999px;cursor:pointer;font-size:1.5rem;color:#222;display:flex;align-items:center;justify-content:center}.modal-close:hover,.modal-close:focus{background:#fff}/* ========================= FOOTER ========================= */ footer{background:#111;color:white;text-align:center;padding:70px 20px}.footer-content h3{font-size:2rem;font-weight:300;margin-bottom:20px}.footer-small{margin-top:12px;opacity:.8;font-size:.9rem}/* ========================= ANIMATIONS ========================= */ .card,.highlight,.contact-card,.gallery img{transition:transform .3s ease,box-shadow .3s ease}/* ========================= RESPONSIVE ========================= */ @media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.highlights{grid-template-columns:repeat(2,1fr)}.contact-grid{grid-template-columns:1fr}}@media(max-width:768px){nav{flex-direction:row;gap:15px;padding:15px}.nav-toggle{display:block;margin-left:auto}.nav-menu{width:90%;max-width:360px;overflow:hidden;max-height:0;transition:max-height .35s ease;background:rgba(255,255,255,.97);border-radius:0 0 20px 20px;box-shadow:0 10px 25px rgba(0,0,0,.08);position:absolute;top:100%;left:50%;transform:translateX(-50%);z-index:999;padding:0 12px;text-align:center}nav.open .nav-menu{max-height:320px}.nav-menu ul{flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:20px 0;width:100%}.nav-menu a{display:block;width:100%;padding:.85rem 0;text-align:center}nav ul{gap:0;flex-wrap:nowrap;justify-content:center}.hero-content h1{font-size:3rem;letter-spacing:3px}.hero-subtitle{font-size:1.1rem}.gallery{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.highlights{grid-template-columns:1fr}.hours-card p{flex-direction:column;gap:4px;text-align:center}section{padding:80px 6%}}
