
:root {
    --primary: #127383;
    --primary-dark: #0a3642;
    --primary-darker: #04161a;
    --primary-light: #d1fbfc;
    --secondary: #2db093;
    --secondary-dark: #1b544a;
    --secondary-light: #d2f5e9;
    --text-dark: #1a1a1a;
    --text-light: #ffffff;
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}
body {
    font-family: "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
    color: var(--text-dark);
    background-color: #fff;
}
a {
    color: var(--primary);
    text-decoration: none;
}
a:hover {
    color: var(--secondary);
}
/* ---------- NAVIGATION ---------- */
.navbar{
    position:fixed;top:0;left:0;width:100%;
    transition:background-color .3s ease,box-shadow .3s ease;
    z-index:999;
}
.navbar .content {
    padding:1.5rem 2rem;
    display:flex;align-items:center;gap:2rem;
    justify-content:flex-end;
    max-width: 1100px;
    margin: auto;
}
.navbar:not(.sticky) a {
    color:var(--text-light);
}
.navbar a{font-weight:600}
.navbar.transparent{background:transparent}
.navbar.sticky{
    background:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.logo{height:40px;display:none;margin-right:auto}
.navbar.sticky .logo{display:block}
/* Hero */
.hero {
    position: relative;
    height: 90vh;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(10, 54, 66, 0.55); /* primary-dark overlay */
}
.hero-content {
    position: relative;
    text-align: center;
    color: var(--text-light);
    padding: 1rem;
    max-width: 760px;
}
.hero h1 {
    font-size: clamp(2rem, 4vw, 3rem);
    margin-bottom: 1rem;
}
.hero p {
    font-size: 1.125rem;
    margin-bottom: 2rem;
}
.btn-primary {
    display: inline-block;
    padding: 0.75rem 2rem;
    background: var(--secondary);
    color: var(--text-light);
    border-radius: 50px;
    font-weight: 600;
    transition: background 0.3s ease;
}
.btn-primary:hover,
.btn-primary:focus {
    background: var(--secondary-dark);
    color: var(--text-light);
}
/* Sections */
section .container {
    padding: 4rem 1rem;
    max-width: 1100px;
    margin: auto;
}
section h2 {
    font-size: 2rem;
    color: var(--primary-dark);
    margin-bottom: 1.5rem;
    text-align: center;
}
section h3 {
    margin-bottom: 20px;
}
section.bg-primary,
section.bg-primary h2 {
    color: var(--text-light);
    background-color: var(--primary);
}
section.bg-dark,
section.bg-dark h2 {
    color: var(--text-light);
    background-color: var(--primary-dark);
}
/* Présentation */
.intro {
    display: grid;
    gap: 2rem;
}
/* Spécialités */
.specialites {
    display: grid;
    gap: 2rem;
}
.specialites ul {
    columns: 2 300px;
    column-gap: 3rem;
    list-style: disc inside none;
}
/* Horaires */
.horaires table {
    width: 100%;
    border-collapse: collapse;
}
.horaires th, .horaires td {
    padding: 0.75rem 0.5rem;
    text-align: left;
    border-bottom: 1px solid #e0e0e0;
}
/* Contact */
.contact-grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    column-gap: 100px;
    max-width: 100%;
}
.contact-grid > div {
    max-width: 100%;
    max-width: 100vw;
    max-width: calc(100vw - 2rem);
}
iframe {
    border: 0;
    width: 100%;
    height: 300px;
}
/* Footer */
footer {
    background: var(--primary-darker);
    color: var(--text-light);
    text-align: center;
    padding: 2rem 1rem;
}
/* Fade-in animation */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.fade-in.show {
    opacity: 1;
    transform: translateY(0);
}
/* Accessibility */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}

@media screen and (max-width: 768px) {
  .no-mobile {
    display: none !important;
  }
}
