
:root{--accent:#b99a6b;--bg:#faf7f2;--ink:#171717;--muted:#6e6a64;--line:#dedad2;--max:1380px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}
.site-header{padding:22px clamp(18px,5vw,70px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}
.brand{display:flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.brand img{width:78px;height:78px;object-fit:contain}.brand small{display:block;font-size:.62rem;letter-spacing:.24em;font-weight:400;margin-top:3px}
nav{display:flex;gap:clamp(12px,2.5vw,30px);flex-wrap:wrap;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}nav a{opacity:.75}nav a:hover,nav a.active{opacity:1;color:var(--accent)}
main{max-width:var(--max);margin:auto;padding:clamp(24px,5vw,64px) clamp(18px,4vw,42px)}
.hero{min-height:65vh;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,60px);align-items:center}
.hero-copy{padding:28px 0}.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600}
h1{font-size:clamp(2.8rem,7vw,6.8rem);line-height:.98;letter-spacing:-.06em;margin:18px 0 24px;font-weight:500}
h2{font-size:clamp(1.8rem,4vw,3.2rem);letter-spacing:-.04em;line-height:1.08;font-weight:500;margin:0 0 20px}
p{color:var(--muted);max-width:62ch}.hero-image{height:min(68vh,680px);min-height:360px;background:#ddd;position:relative;overflow:hidden}
.image-placeholder{background:linear-gradient(135deg,#d8d3ca,#a8a39a);display:flex;align-items:center;justify-content:center;text-align:center;color:#48443e;padding:20px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.btn{display:inline-flex;padding:13px 20px;border:1px solid var(--ink);margin-top:18px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;transition:.2s}.btn:hover{background:var(--ink);color:white}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:60px 0 24px}.section-head p{margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{display:block}.card-image{height:clamp(250px,35vw,420px);background:#d5d0c7;overflow:hidden}.card h3{font-size:1.2rem;font-weight:500;margin:14px 0 3px}.card p{font-size:.88rem;margin:0}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:36px}.gallery .tile{height:clamp(250px,45vw,560px);background:#d5d0c7}.gallery .tile:nth-child(3n){height:clamp(200px,30vw,390px)}
.page-intro{padding:40px 0 20px;max-width:780px}.page-intro h1{font-size:clamp(3rem,8vw,6.5rem)}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,5vw,70px);margin-top:40px}.form{display:grid;gap:16px}.form label{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.form input,.form textarea{width:100%;padding:13px;border:1px solid var(--line);background:transparent;font:inherit;margin-top:7px}.form textarea{min-height:160px;resize:vertical}.form button{justify-self:start;background:var(--ink);color:white;border:0;padding:14px 22px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
footer{padding:30px clamp(18px,5vw,70px);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--muted);font-size:.75rem}
body.concert{--bg:#111;--ink:#f5f5f5;--muted:#b4b4b4;--line:#333;--accent:#d1d1d1;background:#111;color:#f5f5f5}body.concert .image-placeholder{background:linear-gradient(135deg,#333,#111);color:#eee}body.concert .btn:hover{background:white;color:#111}
body.sport{--bg:#fff;--ink:#151515;--muted:#666;--line:#e5e5e5;--accent:#333;background:#fff}
@media(max-width:760px){.site-header{align-items:flex-start;flex-direction:column}.hero{grid-template-columns:1fr;min-height:unset}.hero-image{height:58vh;min-height:320px;order:-1}.cards{grid-template-columns:1fr}.card-image{height:68vw;max-height:450px}.gallery{grid-template-columns:1fr}.gallery .tile,.gallery .tile:nth-child(3n){height:70vw;max-height:500px}.contact-grid{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}}
.hero-image,
.card-image {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}
/* Titres Mariage, Concert et Sport */
.cards .card h3 {
    font-size: 1.8rem;
    font-weight: 600;
    transition: color 0.3s ease;
}

/* Animation des cartes */
.cards .card {
    transition: transform 0.3s ease;
}

/* Effet au passage de la souris */
.cards .card:hover {
    transform: translateY(-5px);
}

.cards .card:hover h3 {
    color: #b99a6b;
    text-decoration: underline;
    text-underline-offset: 6px;
}

/* Accessibilité au clavier */
.cards .card:focus-visible h3 {
    color: #b99a6b;
    text-decoration: underline;
    text-underline-offset: 6px;
}
/* Galerie Mariage : ordre horizontal */
.gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    column-count: auto;
}

.gallery > * {
    width: 100%;
    min-width: 0;
    break-inside: auto;
}

/* Transitions harmonisées : fondu uniquement, aucun déplacement de mise en page. */
@keyframes tygone-appear { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: no-preference) {
  body { animation: tygone-appear 700ms ease-out both; }
}
@media (prefers-reduced-motion: reduce) {
  body { animation: none !important; }
}

/* Liens du pied de page : animation dorée, identique à la page Contact. */
.footer-links { display:inline-flex; flex-wrap:wrap; align-items:center; gap:.35rem; }
.footer-links a { color:inherit; font-weight:500; text-decoration:none; background-image:linear-gradient(#b99a6b,#b99a6b); background-repeat:no-repeat; background-position:left bottom; background-size:0 2px; transition:color .3s ease,background-size .35s ease; padding-bottom:3px; }
.footer-links a:hover,.footer-links a:focus-visible { color:#b99a6b; background-size:100% 2px; }
.legal-content { max-width:850px; margin:30px auto 85px; padding:0 24px; line-height:1.8; }
.legal-content h1 { font-size:clamp(2.1rem,4vw,3.2rem); line-height:1.2; margin-bottom:1rem; }
.legal-content h2 { font-size:1.35rem; margin:2.2rem 0 .7rem; }
.legal-content p,.legal-content li { overflow-wrap:anywhere; }
.legal-content a { color:inherit; text-decoration-color:#b99a6b; text-underline-offset:4px; }
.legal-pending { border-left:3px solid #b99a6b; padding:12px 16px; background:rgba(185,154,107,.09); }
