:root {
    --bg:        #fcfbf8;
    --bg-soft:   #f5f3ee;
    --bg-dark:   #1a1816;
    --text:      #111111;
    --text-mute: #757370;
    --line:      #d8d4cc;
    --line-soft: #e8e4dc;
    --accent:    #8b1c1c;
    --accent-d:  #6b1414;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:17px; scroll-padding-top:80px; }
body {
    background:var(--bg); color:var(--text);
    font-family:'Barlow', sans-serif; font-weight:400;
    line-height:1.6; -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
}
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
em, .italic { font-style:italic; color:var(--accent); }
ul { list-style:none; }

/* ── NAV ── */
.nav {
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(252,251,248,0.06); backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(255,255,255,0.1);
    transition:all 0.4s ease;
}
.nav.scrolled, .nav.solid {
    background:rgba(252,251,248,0.95);
    border-bottom:1px solid var(--line);
}
.nav-inner {
    max-width:1500px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    padding:1.1rem 3rem;
}
.nav-brand { display:flex; align-items:center; gap:1rem; color:#fff; transition:color 0.4s; }
.nav.scrolled .nav-brand, .nav.solid .nav-brand { color:var(--text); }
.nav-logo { height:48px; width:auto; filter:brightness(8); transition:filter 0.4s; }
.nav.scrolled .nav-logo, .nav.solid .nav-logo { filter:none; }
.nav-pole { display:flex; flex-direction:column; line-height:1.1; }
.nav-pole-name {
    font-family:'Cormorant Garamond', serif;
    font-size:1.25rem; font-weight:500;
}
.nav-pole-sub {
    font-size:0.65rem; text-transform:uppercase; letter-spacing:3px;
    opacity:0.65; margin-top:0.2rem;
}
.nav-links {
    display:flex; gap:2rem; font-size:0.72rem;
    text-transform:uppercase; letter-spacing:2.5px; font-weight:500;
    color:#fff; transition:color 0.4s;
}
.nav.scrolled .nav-links, .nav.solid .nav-links { color:var(--text); }
.nav-links a { position:relative; padding:0.3rem 0; }
.nav-links a:hover { color:var(--accent); }
.nav-links a.active { color:var(--accent); }
.nav-links a.active::after {
    content:''; position:absolute; bottom:-2px; left:0; right:0;
    height:1px; background:var(--accent);
}
.nav-burger {
    display:none; width:42px; height:42px; padding:0;
    background:transparent; border:none; cursor:pointer;
    align-items:center; justify-content:center; flex-direction:column; gap:6px;
    color:#fff; transition:color 0.4s;
}
.nav.scrolled .nav-burger, .nav.solid .nav-burger { color:var(--text); }
.nav-burger span {
    display:block; width:24px; height:2px; background:currentColor;
    transition:transform 0.3s, opacity 0.3s;
}
body.menu-open .nav-burger span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
body.menu-open .nav-burger span:nth-child(2) { opacity:0; }
body.menu-open .nav-burger span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
.mobile-menu {
    position:fixed; inset:0; z-index:99;
    background:var(--bg-dark); color:#fff;
    flex-direction:column; justify-content:center; align-items:center;
    gap:2rem; display:none;
}
body.menu-open .mobile-menu { display:flex; }
body.menu-open { overflow:hidden; }
.mobile-menu a {
    font-family:'Cormorant Garamond', serif;
    font-size:2rem; font-style:italic; color:#fff;
    letter-spacing:0.02em;
}
.mobile-menu a:hover, .mobile-menu a:focus, .mobile-menu a.active { color:var(--accent); }
.mobile-menu .mobile-cta {
    margin-top:1.5rem; font-family:'Barlow', sans-serif;
    font-style:normal; font-size:0.8rem;
    text-transform:uppercase; letter-spacing:3px; font-weight:600;
    background:var(--accent); color:#fff;
    padding:1rem 2rem;
}
.nav-cta {
    background:var(--accent); color:#fff;
    padding:0.7rem 1.3rem; font-size:0.7rem;
    text-transform:uppercase; letter-spacing:2px; font-weight:600;
    transition:background 0.2s;
}
.nav-cta:hover { background:var(--accent-d); }

/* ── HERO SLIDER (index only) ── */
.hero-slider {
    position:relative; height:100vh; min-height:680px;
    overflow:hidden; background:var(--bg-dark);
}
.slide {
    position:absolute; inset:0;
    opacity:0; transition:opacity 1.4s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events:none;
}
.slide.active { opacity:1; pointer-events:auto; }
.slide-bg {
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    transform:scale(1.05); transition:transform 8s ease;
}
.slide.active .slide-bg { transform:scale(1); }
.slide-overlay {
    position:absolute; inset:0;
    background:
        linear-gradient(105deg, rgba(15,12,10,0.82) 0%, rgba(15,12,10,0.55) 45%, rgba(15,12,10,0.2) 70%, transparent 100%),
        linear-gradient(0deg, rgba(15,12,10,0.6) 0%, transparent 50%);
}
.slide-content {
    position:absolute; inset:0;
    max-width:1500px; margin:0 auto;
    padding:0 3rem;
    display:flex; flex-direction:column; justify-content:center;
    color:#fff;
}
.slide-tag {
    display:inline-flex; align-items:center; gap:1rem;
    font-size:0.7rem; text-transform:uppercase; letter-spacing:4px;
    font-weight:500; color:#d4c8a8; margin-bottom:2.5rem;
    opacity:0; transform:translateY(20px);
    transition:all 1s cubic-bezier(0.16,1,0.3,1) 0.3s;
}
.slide.active .slide-tag { opacity:1; transform:translateY(0); }
.slide-tag::before { content:''; width:50px; height:1px; background:var(--accent); }
.slide-title {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(3.5rem, 9vw, 9rem); line-height:0.95;
    font-weight:400; letter-spacing:-0.02em;
    max-width:1100px; margin-bottom:2rem;
    opacity:0; transform:translateY(30px);
    transition:all 1.1s cubic-bezier(0.16,1,0.3,1) 0.5s;
}
.slide.active .slide-title { opacity:1; transform:translateY(0); }
.slide-title em { font-style:italic; color:#d4c8a8; }
.slide-desc {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.5rem; line-height:1.4; max-width:600px;
    color:rgba(255,255,255,0.85); margin-bottom:3rem;
    border-left:2px solid var(--accent); padding-left:1.5rem;
    opacity:0; transform:translateY(30px);
    transition:all 1.1s cubic-bezier(0.16,1,0.3,1) 0.7s;
}
.slide.active .slide-desc { opacity:1; transform:translateY(0); }
.slide-cta-row {
    display:flex; gap:1rem; flex-wrap:wrap;
    opacity:0; transform:translateY(30px);
    transition:all 1.1s cubic-bezier(0.16,1,0.3,1) 0.9s;
}
.slide.active .slide-cta-row { opacity:1; transform:translateY(0); }
.btn-slide {
    display:inline-flex; align-items:center; gap:0.8rem;
    padding:1.1rem 2rem; font-size:0.78rem;
    text-transform:uppercase; letter-spacing:2.5px; font-weight:500;
    transition:all 0.25s; border:1px solid currentColor;
}
.btn-slide-primary { background:var(--accent); color:#fff; border-color:var(--accent); }
.btn-slide-primary:hover { background:var(--accent-d); border-color:var(--accent-d); }
.btn-slide-outline { background:transparent; color:#fff; border-color:rgba(255,255,255,0.4); }
.btn-slide-outline:hover { background:#fff; color:var(--text); border-color:#fff; }

/* Slider controls */
.slider-controls {
    position:absolute; bottom:3rem; right:3rem; z-index:5;
    display:flex; align-items:center; gap:1.5rem;
}
.slider-counter {
    color:#fff; font-family:'Cormorant Garamond', serif;
    font-size:1.1rem; letter-spacing:2px;
}
.slider-counter .cur { font-size:2rem; font-weight:500; color:var(--accent); display:inline-block; min-width:30px; text-align:right; }
.slider-counter .sep { color:rgba(255,255,255,0.4); margin:0 0.4rem; }
.slider-counter .tot { color:rgba(255,255,255,0.6); }
.slider-nav { display:flex; gap:0.5rem; }
.slider-btn {
    width:48px; height:48px; border-radius:50%;
    border:1px solid rgba(255,255,255,0.3); background:transparent;
    color:#fff; cursor:pointer; font-size:1.4rem;
    display:flex; align-items:center; justify-content:center;
    transition:all 0.2s;
}
.slider-btn:hover { background:#fff; color:var(--text); border-color:#fff; }

.slider-dots {
    position:absolute; bottom:3rem; left:3rem; z-index:5;
    display:flex; gap:0.7rem;
}
.dot {
    width:40px; height:2px; background:rgba(255,255,255,0.3); cursor:pointer;
    transition:background 0.3s; border:none; padding:0;
}
.dot.active { background:#fff; }

/* ── PAGE HERO (interior pages) ── */
.page-hero {
    position:relative; min-height:60vh;
    display:flex; align-items:center;
    padding:10rem 3rem 6rem;
    background:var(--bg-dark); color:#fff;
    overflow:hidden;
}
.page-hero-bg {
    position:absolute; inset:0; z-index:0;
    background-size:cover; background-position:center;
    opacity:0.35;
}
.page-hero-overlay {
    position:absolute; inset:0; z-index:1;
    background:
        linear-gradient(115deg, rgba(15,12,10,0.85) 0%, rgba(15,12,10,0.6) 60%, rgba(15,12,10,0.4) 100%),
        linear-gradient(0deg, rgba(15,12,10,0.75) 0%, transparent 60%);
}
.page-hero-inner {
    position:relative; z-index:2;
    max-width:1500px; margin:0 auto; width:100%;
}
.page-hero-tag {
    display:inline-flex; align-items:center; gap:1rem;
    font-size:0.7rem; text-transform:uppercase; letter-spacing:4px;
    font-weight:500; color:#d4c8a8; margin-bottom:2rem;
}
.page-hero-tag::before { content:''; width:50px; height:1px; background:var(--accent); }
.page-hero-title {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(3rem, 7vw, 6.5rem); line-height:1;
    font-weight:400; letter-spacing:-0.02em;
    max-width:1100px; margin-bottom:1.5rem;
}
.page-hero-title em { font-style:italic; color:#d4c8a8; }
.page-hero-desc {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.35rem; line-height:1.4; max-width:600px;
    color:rgba(255,255,255,0.85);
    border-left:2px solid var(--accent); padding-left:1.5rem;
}

/* ── INTRO (lettrine) ── */
.intro {
    max-width:1500px; margin:0 auto;
    padding:7rem 3rem;
    display:grid; grid-template-columns:1fr 2fr; gap:5rem;
    border-bottom:1px solid var(--line);
}
.intro-label {
    font-size:0.7rem; text-transform:uppercase; letter-spacing:3px;
    color:var(--text-mute);
    border-top:1px solid var(--text); padding-top:1rem;
}
.intro-text { font-size:1.1rem; line-height:1.7; color:#222; font-weight:400; }
.intro-text p:first-of-type::first-letter {
    font-family:'Cormorant Garamond', serif;
    font-size:5.5rem; font-weight:500; float:left;
    line-height:0.85; margin:0.15rem 0.6rem 0 0; color:var(--accent);
}
.intro-text p + p { margin-top:1.2rem; }

/* ── BIG STAT ── */
.big-stat {
    background:var(--bg-dark); color:#fff;
    padding:8rem 3rem; text-align:center;
    position:relative; overflow:hidden;
}
.big-stat-pre {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.3rem; color:#d4c8a8; margin-bottom:1rem;
}
.big-stat-num {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(8rem, 28vw, 24rem); line-height:0.85;
    font-weight:400; letter-spacing:-0.06em;
    color:#fff;
}
.big-stat-num em { font-style:italic; color:var(--accent); font-weight:500; }
.big-stat-num .plus {
    font-family:'Cormorant Garamond', serif;
    font-size:0.5em; vertical-align:0.4em; color:var(--accent);
    font-weight:300; margin-left:-0.05em;
}
.big-stat-cap {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.7rem; color:rgba(255,255,255,0.85); margin-top:1.5rem;
    line-height:1.4; max-width:900px; margin-left:auto; margin-right:auto;
}
.big-stat-cap em { color:#d4c8a8; font-style:italic; }
.big-stat-sub {
    font-size:0.75rem; text-transform:uppercase; letter-spacing:4px;
    color:rgba(255,255,255,0.5); margin-top:2.5rem; font-weight:500;
}

/* ── STATS MINI ── */
.stats-mini {
    background:var(--bg-dark); color:#fff;
    padding:0 3rem 6rem;
    display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
    max-width:1100px; margin:0 auto;
    border-top:1px solid rgba(255,255,255,0.15); padding-top:3rem;
}
.stat-mini { padding:0 2rem; border-right:1px solid rgba(255,255,255,0.15); text-align:center; }
.stat-mini:last-child { border-right:none; }
.stat-mini-num {
    font-family:'Cormorant Garamond', serif;
    font-size:3rem; line-height:1; font-weight:500;
}
.stat-mini-num em { color:var(--accent); font-style:italic; }
.stat-mini-lbl {
    font-size:0.7rem; text-transform:uppercase; letter-spacing:2.5px;
    color:rgba(255,255,255,0.6); margin-top:0.6rem;
}

/* ── EXPERTISE FULL-WIDTH ── */
.expertise-band {
    display:grid; grid-template-columns:1fr 1fr;
    min-height:80vh; position:relative;
    border-bottom:1px solid var(--line);
}
.expertise-band.reverse { grid-template-columns:1fr 1fr; }
.expertise-band.reverse .expertise-img { order:2; }
.expertise-img {
    background-size:cover; background-position:center;
    min-height:500px;
}
.expertise-content {
    padding:6rem 4rem;
    display:flex; flex-direction:column; justify-content:center;
    background:var(--bg);
}
.expertise-num {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1rem; color:var(--accent); letter-spacing:1px;
    border-top:1px solid var(--text); padding-top:1rem; display:inline-block;
    width:60px; margin-bottom:2rem;
}
.expertise-title {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(2.5rem, 5vw, 4.5rem); font-weight:400;
    line-height:1; letter-spacing:-0.02em; margin-bottom:0.8rem;
}
.expertise-title em { font-style:italic; color:var(--accent); }
.expertise-cfc {
    font-size:0.7rem; text-transform:uppercase; letter-spacing:3px;
    color:var(--text-mute); margin-bottom:2rem; display:block;
}
.expertise-desc {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.3rem; line-height:1.5; color:#444;
    margin-bottom:1.5rem;
}
.expertise-list {
    border-top:1px solid var(--line-soft); padding-top:1.5rem; margin-bottom:2.5rem;
}
.expertise-list-item {
    padding:0.5rem 0;
    font-size:0.95rem; color:#444;
    border-bottom:1px solid var(--line-soft);
    display:flex; justify-content:space-between;
}
.expertise-list-item::before {
    content:'—'; color:var(--accent); margin-right:0.8rem;
}
.expertise-cta {
    display:inline-flex; align-items:center; gap:0.7rem;
    padding:0.9rem 1.7rem; font-size:0.72rem;
    text-transform:uppercase; letter-spacing:2.5px; font-weight:500;
    background:var(--text); color:var(--bg);
    transition:background 0.2s; align-self:flex-start;
}
.expertise-cta:hover { background:var(--accent); }
.expertise-cta::after { content:'→'; transition:transform 0.3s; }
.expertise-cta:hover::after { transform:translateX(4px); }

/* ── SECTION HEADER ── */
.section-header {
    margin-bottom:5rem;
    display:grid; grid-template-columns:1fr 2fr; gap:5rem;
    align-items:end;
}
.section-num {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1rem; color:var(--accent); letter-spacing:1px;
}
.section-title {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(2.5rem, 5vw, 4.5rem); font-weight:400;
    line-height:1; letter-spacing:-0.02em; margin-top:0.4rem;
}
.section-title em { font-style:italic; color:var(--accent); }
.section-intro {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.25rem; line-height:1.5; color:#444;
    max-width:540px;
}

/* ── PROJETS ── */
.projects {
    max-width:1500px; margin:0 auto;
    padding:8rem 3rem;
    border-bottom:1px solid var(--line);
}
.projects-grid {
    display:grid; grid-template-columns:repeat(2, 1fr);
    gap:5rem 3rem;
}
.proj-category { margin-bottom:6rem; }
.proj-category:last-child { margin-bottom:0; }
.proj-category-title {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(1.8rem, 3.5vw, 2.6rem); font-weight:400;
    line-height:1.1; letter-spacing:-0.02em; margin-bottom:2.5rem;
    border-top:1px solid var(--text); padding-top:1.5rem;
    display:flex; align-items:baseline; justify-content:space-between;
    gap:2rem; flex-wrap:wrap;
}
.proj-category-title em { font-style:italic; color:var(--accent); }
.proj-category-count {
    font-size:0.7rem; text-transform:uppercase; letter-spacing:3px;
    color:var(--text-mute); font-family:'Barlow', sans-serif;
    font-weight:500;
}
.proj-status {
    position:absolute; top:1rem; left:1rem;
    font-size:0.65rem; text-transform:uppercase; letter-spacing:2.5px;
    background:var(--bg); color:var(--text); padding:0.4rem 0.8rem;
    font-weight:600;
}
.proj-status.en-cours { background:var(--accent); color:#fff; }
.proj-img-wrap { position:relative; }
.proj { cursor:pointer; transition:opacity 0.3s; }
.proj:hover { opacity:0.85; }
.proj-img-wrap {
    aspect-ratio:4/3; overflow:hidden; margin-bottom:1.5rem;
    background:var(--bg-soft);
}
.proj-img { width:100%; height:100%; object-fit:cover; transition:transform 0.7s ease; }
.proj:hover .proj-img { transform:scale(1.03); }
.proj-meta {
    display:flex; justify-content:space-between;
    font-size:0.68rem; text-transform:uppercase; letter-spacing:3px;
    color:var(--text-mute); margin-bottom:0.8rem;
    border-bottom:1px solid var(--line); padding-bottom:0.6rem;
}
.proj-meta strong { color:var(--text); font-weight:600; }
.proj-title {
    font-family:'Cormorant Garamond', serif;
    font-size:1.85rem; font-weight:400; line-height:1.15;
    margin-bottom:0.5rem; letter-spacing:-0.5px;
}
.proj-cap {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.05rem; color:#666; line-height:1.5;
}

/* ── CTA CONTACT ── */
.cta-band {
    background:var(--text); color:var(--bg);
    padding:8rem 3rem; text-align:center;
}
.cta-pre {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.2rem; color:#d4c8a8; margin-bottom:1.5rem;
}
.cta-title {
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(3rem, 7vw, 6rem); font-weight:400;
    line-height:1; letter-spacing:-0.02em; margin-bottom:1.5rem;
}
.cta-title em { font-style:italic; color:#d4c8a8; }
.cta-sub {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.4rem; max-width:580px; margin:0 auto 3rem;
    color:rgba(252,251,248,0.7); line-height:1.5;
}
.cta-actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.btn {
    display:inline-flex; align-items:center; gap:0.7rem;
    padding:1.1rem 2rem; font-size:0.78rem;
    text-transform:uppercase; letter-spacing:2.5px; font-weight:500;
    transition:all 0.25s; border:1px solid currentColor;
}
.btn-light { background:var(--bg); color:var(--text); border-color:var(--bg); }
.btn-light:hover { background:var(--accent); border-color:var(--accent); color:var(--bg); }
.btn-light-outline { background:transparent; color:var(--bg); border-color:rgba(252,251,248,0.4); }
.btn-light-outline:hover { background:var(--bg); color:var(--text); border-color:var(--bg); }

/* ── HISTOIRE / TIMELINE ── */
.history {
    max-width:1500px; margin:0 auto;
    padding:8rem 3rem; border-bottom:1px solid var(--line);
}
.timeline {
    display:grid; grid-template-columns:repeat(6, 1fr); gap:0;
    border-top:1px solid var(--text); margin-top:4rem;
}
.tl-item {
    padding:2.5rem 1.5rem 0;
    border-right:1px solid var(--line); position:relative;
}
.tl-item:last-child { border-right:none; }
.tl-item::before {
    content:''; position:absolute; top:-7px; left:0;
    width:14px; height:14px; border-radius:50%; background:var(--accent);
}
.tl-year {
    font-family:'Cormorant Garamond', serif;
    font-size:2.4rem; font-weight:500; color:var(--accent);
    margin-bottom:0.6rem; letter-spacing:-1px;
}
.tl-title {
    font-family:'Cormorant Garamond', serif;
    font-size:1.15rem; font-weight:500; line-height:1.2;
    margin-bottom:0.6rem;
}
.tl-desc { font-size:0.85rem; color:#555; line-height:1.6; }

/* ── VIE DE CHANTIER (mosaïque) ── */
.chantier-life {
    background:var(--bg-soft); padding:8rem 3rem;
    border-bottom:1px solid var(--line);
}
.chantier-inner { max-width:1500px; margin:0 auto; }
.chantier-grid {
    display:grid; grid-template-columns:repeat(4, 1fr);
    grid-auto-rows:200px; gap:0.8rem; margin-top:4rem;
}
.ch-photo {
    overflow:hidden; position:relative;
    background-size:cover; background-position:center;
    transition:transform 0.4s ease;
}
.ch-photo:hover { transform:scale(0.97); }
.ch-photo.tall { grid-row:span 2; }
.ch-photo.wide { grid-column:span 2; }
.ch-caption {
    position:absolute; bottom:1rem; left:1rem;
    font-size:0.65rem; text-transform:uppercase; letter-spacing:2.5px;
    color:#fff; background:rgba(0,0,0,0.6); padding:0.4rem 0.8rem;
    backdrop-filter:blur(4px);
}

/* ── ÉQUIPE ── */
.team {
    max-width:1500px; margin:0 auto;
    padding:8rem 3rem; border-bottom:1px solid var(--line);
}
.team-grid {
    display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
    margin-top:4rem;
    border-top:1px solid var(--text);
}
.team-pole {
    padding:3rem 2rem 0;
    border-right:1px solid var(--line);
    text-align:center;
}
.team-pole:first-child { padding-left:0; }
.team-pole:last-child { border-right:none; padding-right:0; }
.team-pole-num {
    font-family:'Cormorant Garamond', serif;
    font-size:5rem; line-height:1; font-weight:500;
    letter-spacing:-2px; margin-bottom:1rem;
}
.team-pole-num em { font-style:italic; color:var(--accent); }
.team-pole-num .approx {
    font-size:0.5em; vertical-align:0.4em; color:var(--accent);
    font-weight:300; margin-right:0.1em;
}
.team-pole-num .plus {
    font-size:0.7em; color:var(--accent);
    font-weight:300; margin-right:0.05em;
    vertical-align:0.1em;
}
.team-pole-lbl {
    font-size:0.72rem; text-transform:uppercase; letter-spacing:3px;
    color:var(--text-mute); margin-bottom:0.5rem; font-weight:600;
}
.team-pole-name {
    font-family:'Cormorant Garamond', serif;
    font-size:1.4rem; font-weight:500; margin-bottom:1rem;
    letter-spacing:-0.3px;
}
.team-pole-desc {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1rem; color:#666; line-height:1.55;
    border-top:1px solid var(--line-soft); padding-top:1rem;
}
.team-total {
    text-align:center; margin-top:3.5rem;
    padding-top:2rem; border-top:1px solid var(--line);
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.3rem; color:#444;
}
.team-total strong { font-style:normal; font-weight:500; color:var(--accent); }

/* ── CONTACT FORM + MAPS ── */
.contact-section {
    max-width:1500px; margin:0 auto;
    padding:8rem 3rem; border-bottom:1px solid var(--line);
}
.contact-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:5rem;
    margin-top:4rem;
}
.contact-info-block { padding-right:2rem; }
.contact-info-item { border-top:1px solid var(--line); padding:1.5rem 0; }
.contact-info-item:last-child { border-bottom:1px solid var(--line); }
.contact-info-lbl {
    font-size:0.7rem; text-transform:uppercase; letter-spacing:3px;
    color:var(--text-mute); margin-bottom:0.5rem;
}
.contact-info-val {
    font-family:'Cormorant Garamond', serif;
    font-size:1.4rem; font-weight:500;
}
.contact-info-val a { color:var(--text); transition:color 0.2s; }
.contact-info-val a:hover { color:var(--accent); }
.contact-map-wrap { aspect-ratio:1/1; overflow:hidden; }
.contact-map-wrap iframe { width:100%; height:100%; border:none; filter:grayscale(0.3) contrast(0.95); }

.contact-form-wrap {
    max-width:780px; margin:5rem auto 0;
    border-top:1px solid var(--text); padding-top:4rem;
}
.contact-form-title {
    font-family:'Cormorant Garamond', serif;
    font-size:2.4rem; font-weight:400; text-align:center;
    margin-bottom:0.6rem;
}
.contact-form-title em { font-style:italic; color:var(--accent); }
.contact-form-sub {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.1rem; text-align:center; color:#666; margin-bottom:3rem;
}

/* ── REVEAL ON SCROLL ── */
.reveal {
    opacity:0; transform:translateY(40px);
    transition:opacity 1s cubic-bezier(0.16,1,0.3,1), transform 1s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── FOOTER SOCIAL ── */
.footer-social { display:flex; gap:0.8rem; }
.footer-social a {
    width:38px; height:38px; border-radius:50%;
    border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
    color:var(--text-mute); transition:all 0.2s;
}
.footer-social a:hover { background:var(--accent); color:#fff; border-color:var(--accent); }

/* ── RECRUTEMENT ── */
.recruit {
    max-width:1500px; margin:0 auto;
    padding:8rem 3rem;
    border-bottom:1px solid var(--line);
}
.recruit-intro {
    text-align:center; max-width:780px; margin:0 auto 5rem;
}
.recruit-intro .section-num { display:block; }
.recruit-intro .section-title { margin:0.5rem 0 1.5rem; font-size:clamp(2.5rem, 6vw, 5rem); }
.recruit-intro p {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.4rem; line-height:1.5; color:#444; margin-top:1.5rem;
}

.values {
    display:grid; grid-template-columns:repeat(3, 1fr); gap:0;
    border-top:1px solid var(--text); border-bottom:1px solid var(--text);
    margin-bottom:6rem;
}
.value { padding:3rem 2rem; border-right:1px solid var(--line); }
.value:last-child { border-right:none; }
.value-num {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1rem; color:var(--accent); margin-bottom:1.2rem;
}
.value-icon { color:var(--accent); margin-bottom:1.5rem; }
.value-title {
    font-family:'Cormorant Garamond', serif;
    font-size:1.7rem; font-weight:400; line-height:1.1;
    margin-bottom:1rem;
}
.value-desc { font-size:0.95rem; line-height:1.7; color:#444; }

.recruit-sub-head { text-align:center; margin-bottom:3rem; }
.recruit-sub-num {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1rem; color:var(--accent);
}
.recruit-sub-title {
    font-family:'Cormorant Garamond', serif;
    font-size:2.4rem; font-weight:400; margin-top:0.4rem;
}
.recruit-sub-title em { font-style:italic; color:var(--accent); }
.recruit-sub-desc {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.15rem; color:#555; max-width:680px;
    margin:1rem auto 0; line-height:1.55;
}

.jobs { border-top:1px solid var(--text); margin-bottom:6rem; }
.job { border-bottom:1px solid var(--line); transition:background 0.25s; }
.job:hover { background:var(--bg-soft); }
.job-header {
    padding:2rem 0;
    display:flex; align-items:center; justify-content:space-between;
    cursor:pointer; gap:2rem;
}
.job-header-left { display:flex; align-items:baseline; gap:1.5rem; flex-wrap:wrap; }
.job-badge {
    font-size:0.65rem; text-transform:uppercase; letter-spacing:2.5px;
    font-weight:600; color:var(--text-mute);
    border:1px solid var(--line); padding:0.3rem 0.7rem;
}
.job-badge.urgent { color:var(--accent); border-color:var(--accent); }
.job-title-text {
    font-family:'Cormorant Garamond', serif;
    font-size:1.7rem; font-weight:400; letter-spacing:-0.5px;
}
.job-header-right { display:flex; align-items:center; gap:2rem; flex-shrink:0; }
.job-meta {
    display:flex; gap:1.5rem;
    font-size:0.72rem; text-transform:uppercase; letter-spacing:2px;
    color:var(--text-mute);
}
.job-meta span { display:flex; align-items:center; gap:0.4rem; }
.job-chevron { transition:transform 0.3s; flex-shrink:0; }
.job.open .job-chevron { transform:rotate(180deg); }
.job-body { max-height:0; overflow:hidden; transition:max-height 0.4s ease, padding 0.4s ease; }
.job.open .job-body { max-height:2000px; padding:0 0 2.5rem; }
.job-body h4 {
    font-family:'Cormorant Garamond', serif;
    font-size:1.15rem; font-weight:500; color:var(--accent);
    margin:1.5rem 0 0.8rem; letter-spacing:-0.3px;
    text-transform:none;
}
.job-body h4:first-of-type { margin-top:0.5rem; }
.job-info-row {
    display:flex; flex-wrap:wrap; gap:1.5rem 2.5rem;
    border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
    padding:1.2rem 0; margin-bottom:1.5rem;
}
.job-info-row > div { font-size:0.9rem; }
.job-info-row strong {
    display:block; font-size:0.65rem; text-transform:uppercase;
    letter-spacing:2.5px; color:var(--text-mute); font-weight:600;
    margin-bottom:0.3rem;
}
.job-body p {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.2rem; line-height:1.6; color:#444; margin-bottom:1.5rem;
}
.job-body ul {
    list-style:none; border-left:1px solid var(--accent); padding-left:1.5rem;
    margin-bottom:2rem;
}
.job-body li { font-size:0.95rem; padding:0.4rem 0; color:#333; }
.job-apply-btn {
    display:inline-flex; align-items:center; gap:0.7rem;
    padding:0.85rem 1.6rem;
    font-size:0.72rem; text-transform:uppercase; letter-spacing:2.5px;
    background:var(--text); color:var(--bg);
    transition:background 0.2s;
}
.job-apply-btn:hover { background:var(--accent); }

.recruit-form-wrap {
    max-width:780px; margin:0 auto;
    border-top:1px solid var(--text); padding-top:4rem;
}
.recruit-form-title {
    font-family:'Cormorant Garamond', serif;
    font-size:2.6rem; font-weight:400; text-align:center;
    margin-bottom:0.6rem;
}
.recruit-form-title em { font-style:italic; color:var(--accent); }
.recruit-form-sub {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:1.15rem; text-align:center; color:#666; margin-bottom:3rem;
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-bottom:2rem; }
.form-group { display:flex; flex-direction:column; }
.form-group.full { grid-column:1/-1; }
.form-group label {
    font-size:0.7rem; text-transform:uppercase; letter-spacing:2.5px;
    color:var(--text-mute); margin-bottom:0.6rem; font-weight:500;
}
.form-group input, .form-group select, .form-group textarea {
    font-family:'Cormorant Garamond', serif;
    font-size:1.15rem; padding:0.6rem 0;
    border:none; border-bottom:1px solid var(--line);
    background:transparent; color:var(--text);
    transition:border-color 0.2s; outline:none;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
    border-bottom-color:var(--accent);
}
.form-group textarea { min-height:120px; resize:vertical; line-height:1.5; }
.form-group input::placeholder, .form-group textarea::placeholder {
    color:#999; font-style:italic;
}
.form-group input[type="file"] {
    font-family:'Inter', sans-serif; font-size:0.85rem;
    padding:0.7rem 0; cursor:pointer;
}
.form-group input[type="file"]::file-selector-button {
    background:transparent; color:var(--text);
    border:1px solid var(--text);
    padding:0.5rem 1rem; margin-right:1rem;
    font-family:'Inter', sans-serif;
    font-size:0.7rem; text-transform:uppercase; letter-spacing:2px;
    font-weight:500; cursor:pointer;
    transition:all 0.2s;
}
.form-group input[type="file"]::file-selector-button:hover {
    background:var(--text); color:var(--bg);
}
.form-group .file-hint {
    font-size:0.7rem; color:var(--text-mute);
    margin-top:0.4rem; font-style:italic;
}
.form-submit-row { text-align:center; margin-top:2rem; }
.recruit-submit {
    display:inline-flex; align-items:center; gap:0.8rem;
    background:var(--text); color:var(--bg);
    padding:1.1rem 2.2rem; border:none; cursor:pointer;
    font-family:'Barlow', sans-serif;
    font-size:0.78rem; text-transform:uppercase; letter-spacing:2.5px;
    font-weight:500; transition:background 0.2s;
}
.recruit-submit:hover { background:var(--accent); }
.recruit-note {
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:0.95rem; text-align:center; color:#888; margin-top:2rem;
}

/* ── FOOTER ── */
footer {
    max-width:1500px; margin:0 auto;
    padding:3rem; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:1rem;
}
.footer-brand { font-family:'Cormorant Garamond', serif; font-size:1.3rem; font-weight:500; }
.footer-info {
    font-size:0.7rem; text-transform:uppercase; letter-spacing:2.5px;
    color:var(--text-mute);
}

/* ── LIGHTBOX ── */
.lightbox {
    position:fixed; inset:0; z-index:2000;
    background:rgba(252,251,248,0.98);
    display:none; flex-direction:column;
    align-items:center; justify-content:center; padding:3rem;
}
.lightbox.open { display:flex; }
.lightbox-img { max-width:88vw; max-height:75vh; object-fit:contain;
    box-shadow:0 30px 80px rgba(0,0,0,0.12); }
.lb-btn {
    background:none; border:1px solid var(--text); color:var(--text);
    font-family:'Cormorant Garamond', serif; font-size:1.4rem;
    width:48px; height:48px; cursor:pointer; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    transition:all 0.3s;
}
.lb-btn:hover { background:var(--text); color:var(--bg); }
.lightbox-close { position:absolute; top:2rem; right:2rem; }
.lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); }
.lightbox-prev { left:2rem; } .lightbox-next { right:2rem; }
.lightbox-meta { margin-top:2rem; text-align:center; font-family:'Cormorant Garamond', serif; }
.lightbox-title { font-size:1.5rem; font-style:italic; }
.lightbox-counter {
    font-family:'Barlow'; font-size:0.7rem; letter-spacing:3px;
    text-transform:uppercase; color:var(--text-mute); margin-top:0.4rem;
}

/* ── RESPONSIVE ── */
@media (max-width:1200px) {
    .timeline { grid-template-columns:repeat(3, 1fr); }
}
@media (max-width:1024px) {
    .nav-inner { padding:0.9rem 1.8rem; gap:0.8rem; }
    .nav-links { display:none; }
    .nav-burger { display:inline-flex; }
}
@media (max-width:1024px) and (min-width:701px) {
    .expertise-band { grid-template-columns:1fr; min-height:auto; }
    .expertise-band.reverse .expertise-img { order:0; }
    .expertise-img { min-height:340px; }
    .expertise-content { padding:4rem 2.5rem; }
    .intro { padding:4rem 2.5rem; gap:3rem; }
    .section-header { gap:2.5rem; }
    .contact-grid { grid-template-columns:1fr; gap:3rem; }
    .values { grid-template-columns:repeat(3,1fr); }
    .form-row { grid-template-columns:1fr 1fr; }
    .nav-pole-name { font-size:1.1rem; }
    .nav-pole-sub { font-size:0.6rem; letter-spacing:2.2px; }
    .page-hero { min-height:50vh; padding:9rem 2.5rem 5rem; }
}
@media (max-width:700px) {
    .nav-inner { padding:0.8rem 1.2rem; gap:0.5rem; }
    .nav-logo { height:38px; }
    .nav-pole-name { font-size:1.05rem; }
    .nav-pole-sub { font-size:0.58rem; letter-spacing:2px; }
    .nav-cta { padding:0.6rem 1rem; font-size:0.62rem; letter-spacing:1.5px; }
    .hero-slider { min-height:580px; }
    .slide-content { padding:0 1.5rem; padding-top:5rem; }
    .slide-tag { font-size:0.65rem; letter-spacing:3px; margin-bottom:1.5rem; }
    .slide-desc { font-size:1.15rem; padding-left:1rem; }
    .slider-controls { right:1.5rem; bottom:1.5rem; gap:0.8rem; }
    .slider-dots { left:1.5rem; bottom:1.5rem; }
    .dot { width:25px; }
    .page-hero { min-height:48vh; padding:8rem 1.5rem 4rem; }
    .page-hero-desc { font-size:1.1rem; padding-left:1rem; }
    .intro { padding:3.5rem 1.5rem; grid-template-columns:1fr; gap:2rem; }
    .big-stat { padding:5rem 1.5rem; }
    .big-stat-num { font-size:8rem; }
    .stats-mini { padding:0 1.5rem 4rem; grid-template-columns:1fr; gap:2rem 0; }
    .stat-mini { padding:1.2rem; border-right:none; border-bottom:1px solid rgba(255,255,255,0.15); }
    .stat-mini:last-child { border-bottom:none; }
    .expertise-band { grid-template-columns:1fr; min-height:auto; }
    .expertise-band.reverse .expertise-img { order:0; }
    .expertise-img { min-height:300px; }
    .expertise-content { padding:3.5rem 1.5rem; }
    .projects { padding:4rem 1.5rem; }
    .section-header { grid-template-columns:1fr; gap:2rem; }
    .projects-grid { grid-template-columns:1fr; gap:3rem; }
    .cta-band { padding:5rem 1.5rem; }
    .history { padding:4rem 1.5rem; }
    .timeline { grid-template-columns:1fr; }
    .tl-item { border-right:none; border-bottom:1px solid var(--line); padding:1.5rem 0 1.5rem 1rem; }
    .tl-item::before { left:-7px; top:50%; transform:translateY(-50%); }
    .tl-item:last-child { border-bottom:none; }
    .chantier-life, .contact-section, .team { padding:4rem 1.5rem; }
    .chantier-grid { grid-template-columns:repeat(2, 1fr); grid-auto-rows:140px; }
    .ch-photo.tall { grid-row:span 2; }
    .ch-photo.wide { grid-column:span 1; }
    .team-grid { grid-template-columns:1fr; }
    .team-pole { padding:2rem 0; border-right:none; border-bottom:1px solid var(--line); }
    .team-pole:last-child { border-bottom:none; }
    .team-pole-num { font-size:3.5rem; }
    .contact-grid { grid-template-columns:1fr; gap:2.5rem; }
    .contact-info-block { padding-right:0; }
    .contact-map-wrap { aspect-ratio:4/3; }
    .recruit { padding:4rem 1.5rem; }
    .values { grid-template-columns:1fr; }
    .value { border-right:none; border-bottom:1px solid var(--line); }
    .value:last-child { border-bottom:none; }
    .job-header { flex-direction:column; align-items:flex-start; gap:1rem; }
    .job-header-right { width:100%; justify-content:space-between; }
    .form-row { grid-template-columns:1fr; gap:1.5rem; }
    footer { flex-direction:column; gap:0.8rem; padding:2rem 1.5rem; text-align:center; }
}
