/* ===== Defaults (sécurité) ===== */
:root{
  --brand:#D4A5A5;
  --brand-2:#E8D5D5;
  --bg:#F8FAFC;
  --surface:#FFFFFF;
  --text:#0F172A;
  --muted:#6B7280;
  --accent:#9BBF9F;
  --radius:16px;
  --shadow-sm:0 1px 3px rgba(0,0,0,.06);
  --shadow:0 4px 12px rgba(0,0,0,.08);
  --shadow-lg:0 10px 30px rgba(0,0,0,.12);
  --transition:all 200ms ease;
}

@media (prefers-color-scheme: dark){
  :root{
    --bg:#0F172A;
    --surface:#1E293B;
    --text:#F1F5F9;
    --muted:#94A3B8;
  }
}

/* ===== Header hardening ===== */
.site-header{
  position:sticky;top:0;
  background:var(--surface,#fff);
  border-bottom:1px solid rgba(17,24,39,.06);
  -webkit-backdrop-filter:saturate(180%) blur(6px);
  backdrop-filter:saturate(180%) blur(6px);
  z-index:50;
  padding:1rem 0;
}
.site-header a{color:var(--text,#0f172a);text-decoration:none;}
.site-header .logo{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.125rem;}
.site-header .nav{display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap;}
.site-header .nav-link{padding:.5rem .75rem;border-radius:8px;transition:var(--transition);font-weight:500;}
.site-header .nav-link:hover,.site-header .nav-link:focus{background:var(--brand-2);color:var(--brand);}
.site-header .nav-link[aria-current="page"]{background:var(--brand);color:#fff;}
@media (min-width:1024px){
  .site-header .container{display:flex;align-items:center;justify-content:space-between;}
}
.hero+.intro,.hero+.intro-media{margin-top:clamp(24px,4vw,56px);}

/* ===== Reset & Base ===== */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:18px;line-height:1.6;color:var(--text);background:var(--bg);}
h1,h2,h3,h4,h5,h6{margin:0 0 1rem;font-weight:700;line-height:1.2;color:var(--text);}
h1{font-size:clamp(2.5rem,5vw,3.5rem);line-height:1.1;}
h2{font-size:clamp(2rem,4vw,2.5rem);}
h3{font-size:clamp(1.5rem,3vw,1.75rem);}
p{margin:0 0 1rem;}
a{color:var(--brand);text-decoration:underline;transition:var(--transition);}
a:hover,a:focus{color:var(--accent);}
img,picture{max-width:100%;height:auto;display:block;}
ul,ol{margin:0;padding:0 0 0 1.5rem;}
button,input,select,textarea{font:inherit;color:inherit;}
button{cursor:pointer;}

/* ===== Layout ===== */
.container{max-width:1180px;margin-inline:auto;padding-inline:clamp(16px,4vw,32px);}
.container--narrow{max-width:800px;}
.section{padding-block:clamp(40px,7vw,96px);}
.section--tight{padding-block:clamp(32px,5vw,64px);}
.section--loose{padding-block:clamp(56px,9vw,112px);}
.section--bg{background:var(--brand-2);}
.section--cta{background:linear-gradient(135deg,var(--brand) 0%,var(--accent) 100%);color:#fff;}
.section--cta *{color:#fff;}
.text-center{text-align:center;}
.text-muted{color:var(--muted);}

/* ===== Grid ===== */
.grid{display:grid;gap:clamp(16px,3vw,32px);}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
@media (min-width:768px){
  .grid-2{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(3,1fr);}
}
.align-center{align-items:center;}

/* ===== Typography ===== */
.lead{font-size:1.25rem;line-height:1.6;max-width:75ch;color:var(--muted);}
.page-title{margin-bottom:1.5rem;}
.section-title{margin-bottom:1.5rem;}

/* ===== Buttons ===== */
.btn{display:inline-block;padding:.875rem 1.75rem;border-radius:var(--radius);font-weight:600;text-decoration:none;transition:var(--transition);border:2px solid transparent;text-align:center;cursor:pointer;background:none;}
.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand);}
.btn-primary:hover,.btn-primary:focus{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow);}
.btn-secondary{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn-secondary:hover,.btn-secondary:focus{background:var(--brand);border-color:var(--brand);color:#fff;}
.btn-outline{background:transparent;color:var(--brand);border-color:var(--brand);}
.btn-outline:hover,.btn-outline:focus{background:var(--brand);color:#fff;}
.btn-sm{padding:.5rem 1rem;font-size:.875rem;}
.cta-buttons{display:flex;gap:1rem;margin-top:1.5rem;flex-wrap:wrap;justify-content:center;}
@media (max-width:768px){
  .cta-buttons{flex-direction:column;align-items:stretch;}
  .btn{width:100%;}
}

/* ===== Cards ===== */
.card{background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition);}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);}
.card-media{position:relative;overflow:hidden;}
.card-media img{width:100%;height:100%;object-fit:cover;}
.card-body{padding:1.5rem;}
.card-title{margin-bottom:.75rem;}
.card-text{color:var(--muted);}

/* ===== Media & Ratios ===== */
.media{position:relative;overflow:hidden;border-radius:var(--radius);}
.ratio-16x9,.ratio-4x3,.ratio-1x1{position:relative;width:100%;overflow:hidden;}
.ratio-16x9::before{content:"";display:block;padding-top:56.25%;}
.ratio-4x3::before{content:"";display:block;padding-top:75%;}
.ratio-1x1::before{content:"";display:block;padding-top:100%;}
.ratio-16x9>*,.ratio-4x3>*,.ratio-1x1>*{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* ===== Hero ===== */
.hero{position:relative;min-height:clamp(400px,60vh,700px);display:flex;align-items:center;justify-content:center;overflow:hidden;color:#fff;}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;}
.hero .container{position:relative;z-index:3;}
.hero-copy{max-width:700px;}
.backplate{background:color-mix(in oklab,var(--surface) 75%,transparent);border:1px solid rgba(17,24,39,.06);border-radius:var(--radius);padding:clamp(12px,2.5vw,24px);box-shadow:0 8px 32px rgba(0,0,0,.08);backdrop-filter:saturate(120%) blur(4px);}
.hero::before{content:none!important;}
.media img,.hero img{filter:none!important;opacity:1!important;mix-blend-mode:normal!important;image-rendering:auto;}
.hero-title{margin-bottom:1rem;color:var(--text);}
.hero-lead{font-size:1.25rem;margin-bottom:1.5rem;color:var(--muted);}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;}

/* ===== Page Hero ===== */
.page-hero{position:relative;min-height:clamp(250px,40vh,400px);display:flex;align-items:center;justify-content:center;overflow:hidden;color:#fff;}
.page-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;}
.page-hero .container{position:relative;z-index:3;}
.page-hero-copy{max-width:700px;}
.page-lead{font-size:1.125rem;color:var(--muted);}

/* ===== Intro ===== */
.intro{text-align:center;}
.intro .lead{margin-inline:auto;}
.intro-media{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;align-items:center;}

/* ===== Values ===== */
.values-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-top:2rem;}
.value-item{text-align:center;}
.value-title{font-size:1.25rem;margin-bottom:.5rem;color:var(--brand);}
.values-list{display:flex;flex-direction:column;gap:2rem;margin-top:2rem;}
.value-card{background:var(--surface);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow);transition:var(--transition);}
.value-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);}
.value-card-icon{font-size:2rem;margin-bottom:1rem;color:var(--brand);}
.value-card-title{font-size:1.5rem;margin-bottom:1rem;color:var(--brand);}
.value-card-text{color:var(--muted);}

/* ===== Timeline ===== */
.timeline{position:relative;padding-left:2rem;}
.timeline::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--brand-2);}
.timeline-item{position:relative;margin-bottom:2rem;}
.timeline-marker{position:absolute;left:-2.5rem;top:.5rem;width:1rem;height:1rem;background:var(--brand);border-radius:50%;border:3px solid var(--surface);box-shadow:var(--shadow);}
.timeline-content{background:var(--surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);}
.timeline-title{font-size:1.25rem;color:var(--brand);margin-bottom:.5rem;}

/* ===== Gallery ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;}
.gallery-item{position:relative;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow);transition:var(--transition);}
.gallery-item:hover{transform:scale(1.02);box-shadow:var(--shadow-lg);}
.gallery-link{display:block;position:relative;}
.gallery-img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;}

/* ===== Lightbox ===== */
.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:9999;align-items:center;justify-content:center;}
.lightbox:not([hidden]){display:flex;}
.lightbox-img{max-width:90vw;max-height:90vh;object-fit:contain;}
.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;background:rgba(255,255,255,.9);border:none;border-radius:50%;width:3rem;height:3rem;font-size:1.5rem;cursor:pointer;transition:var(--transition);color:var(--text);}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:#fff;transform:scale(1.1);}
.lightbox-close{top:1rem;right:1rem;}
.lightbox-prev{left:1rem;top:50%;transform:translateY(-50%);}
.lightbox-next{right:1rem;top:50%;transform:translateY(-50%);}

/* ===== Contact ===== */
.contact-section{background-size:cover;background-position:center;padding:clamp(40px,7vw,96px) 0;position:relative;}
.contact-section::before{content:"";position:absolute;inset:0;background:rgba(248,250,252,.92);z-index:1;}
.contact-section .container{position:relative;z-index:2;}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;}
.contact-info-card{background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);}
.contact-card-img{width:100%;height:auto;}
.contact-card-img img{width:100%;height:auto;}
.contact-form-card{background:var(--surface);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-lg);}
.form-group{margin-bottom:1.25rem;}
.form-label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text);}
.form-input{width:100%;padding:.75rem 1rem;border:2px solid var(--brand-2);border-radius:8px;background:var(--surface);color:var(--text);transition:var(--transition);}
.form-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in oklab,var(--brand) 20%,transparent);}
.form-hint{font-size:.875rem;color:var(--muted);margin-top:1rem;}
textarea.form-input{resize:vertical;min-height:120px;}

/* ===== Footer ===== */
.site-footer{background:var(--surface);border-top:1px solid rgba(17,24,39,.06);padding:3rem 0 1.5rem;margin-top:clamp(32px,6vw,72px);}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-bottom:2rem;}
.footer-col h3{font-size:1rem;margin-bottom:1rem;color:var(--brand);}
.footer-col p{margin-bottom:.5rem;font-size:.9rem;}
.footer-col a{text-decoration:none;}
.footer-nav{list-style:none;padding:0;}
.footer-nav li{margin-bottom:.5rem;}
.footer-nav a{text-decoration:none;transition:var(--transition);}
.footer-nav a:hover{color:var(--brand);}
.footer-bottom{text-align:center;padding-top:1.5rem;border-top:1px solid rgba(17,24,39,.06);font-size:.875rem;color:var(--muted);}
.footer-legal{margin-top:.5rem;}
.footer-legal a{text-decoration:none;color:var(--muted);transition:var(--transition);}
.footer-legal a:hover{color:var(--brand);}

/* ===== Error Page ===== */
.section--error{min-height:60vh;display:flex;align-items:center;justify-content:center;}
.error-code{font-size:clamp(4rem,12vw,8rem);color:var(--brand);line-height:1;margin-bottom:1rem;}
.error-title{font-size:clamp(1.5rem,4vw,2.5rem);margin-bottom:1rem;}

/* ===== Focus & Accessibility ===== */
.focus-ring:focus,.btn:focus,a:focus,input:focus,textarea:focus,select:focus,button:focus{outline:2px solid var(--brand);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}
}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}
:focus:not(:focus-visible){outline:none;}

/* ===== Utilities ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}
[hidden]{display:none!important;}

