:root{
  --forest:#1f3a2e;
  --forest-deep:#142920;
  --mist:#5c7a8c;
  --cloud:#f4f6f4;
  --paper:#ffffff;
  --aloe:#b7d43a;
  --ink:#1b2621;
  --cut:clamp(36px,6vw,90px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--cloud);line-height:1.65;font-size:17px}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.15;color:var(--forest)}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* Nav */
nav{position:absolute;top:0;left:0;right:0;z-index:5;padding:22px 0;color:#fff}
nav .wrap{display:flex;justify-content:space-between;align-items:center}
.brand{display:inline-flex;align-items:center;gap:12px;font-family:Fraunces,serif;font-size:1.3rem;font-weight:600;text-decoration:none}
.brand img{display:block;width:40px;height:40px;flex:none}
nav ul{display:flex;gap:28px;list-style:none;font-size:.95rem}
nav a{text-decoration:none;opacity:.9}
nav a:hover{opacity:1;color:var(--aloe)}

nav .lang{display:flex;gap:6px;align-items:center;margin-left:4px;padding-left:20px;border-left:1px solid rgba(255,255,255,.3);font-weight:600}
nav .lang span{opacity:.5}
nav .lang a{opacity:.6}
nav .lang a[aria-current]{opacity:1;color:var(--aloe)}

/* Hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;color:#fff;
  background:
    linear-gradient(100deg,rgba(20,41,32,.88) 0%,rgba(20,41,32,.55) 55%,rgba(20,41,32,.2) 100%),
    url("../images/mafate.jpg") center/cover,
    linear-gradient(160deg,#1f3a2e,#5c7a8c);
  /* WebP (-50 %) pour les navigateurs qui gèrent image-set avec type(), sinon le JPEG ci-dessus */
  background:
    linear-gradient(100deg,rgba(20,41,32,.88) 0%,rgba(20,41,32,.55) 55%,rgba(20,41,32,.2) 100%),
    image-set(url("../images/mafate.webp") type("image/webp"),url("../images/mafate.jpg") type("image/jpeg")) center/cover,
    linear-gradient(160deg,#1f3a2e,#5c7a8c);
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),0 100%);
  padding-bottom:var(--cut)}
.hero h1{color:#fff;font-size:clamp(2.2rem,5.4vw,4rem);max-width:15ch}
.hero p{margin:22px 0 32px;max-width:46ch;font-size:1.15rem;opacity:.92}
.btn{display:inline-block;background:var(--aloe);color:var(--forest-deep);padding:14px 28px;border-radius:999px;font-weight:600;text-decoration:none;transition:transform .2s}
.btn:hover{transform:translateY(-2px)}
.btn.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6);margin-left:12px}

/* Sections */
section{padding:84px 0}
.eyebrow{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mist);font-weight:600;margin-bottom:14px}
section h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:22px;max-width:22ch}
.lead{max-width:62ch;color:#33433b}

.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:26px;margin-top:44px}
.card{background:var(--paper);border-radius:14px;padding:30px;border:1px solid rgba(31,58,46,.08)}
.card h3{font-size:1.25rem;margin-bottom:10px}
.card p{color:#44564d;font-size:.98rem}
.card .num{font-family:Fraunces,serif;color:var(--aloe);font-size:2rem;line-height:1;margin-bottom:12px;-webkit-text-stroke:0}

/* Projects (dark band with diagonal cuts) */
.projects{background:var(--forest);color:#fff;
  clip-path:polygon(0 var(--cut),100% 0,100% calc(100% - var(--cut)),0 100%);
  padding:calc(var(--cut) + 70px) 0}
.projects h2{color:#fff}
.projects .eyebrow{color:var(--aloe)}
.projects .lead{color:rgba(255,255,255,.8)}
.projects .card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.projects .card h3{color:#fff}
.projects .card p{color:rgba(255,255,255,.78)}
.tag{display:inline-block;font-size:.75rem;padding:3px 10px;border-radius:999px;background:rgba(183,212,58,.16);color:var(--aloe);margin:14px 6px 0 0}
picture{display:contents}
.shot{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center 30%;border-radius:10px;margin-bottom:20px;background:var(--forest-deep)}
.project{display:block;text-decoration:none;transition:transform .2s,border-color .2s}
.project:hover{transform:translateY(-4px);border-color:var(--aloe)}
.visit{display:block;padding-top:18px;color:var(--aloe);font-size:.9rem;font-weight:600}

/* About */
.about .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.about .portrait{display:block;width:100%;max-width:440px;height:auto;aspect-ratio:1;object-fit:cover;object-position:center 30%;border-radius:14px;justify-self:center;box-shadow:0 18px 40px -18px rgba(20,41,32,.45)}
@media(max-width:780px){.about .wrap{grid-template-columns:1fr}nav .wrap{flex-direction:column;align-items:flex-start;gap:10px}nav ul{gap:14px;font-size:.85rem;flex-wrap:wrap;align-items:center}nav .lang{padding-left:14px;margin-left:0}.brand{font-size:1.2rem}.btn.ghost{margin:12px 0 0}}

/* Contact */
.contact{background:var(--paper);text-align:center}
.contact h2{margin-left:auto;margin-right:auto}
.contact .lead{margin:0 auto 32px}
.form{max-width:560px;margin:0 auto;text-align:left;display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:grid;gap:6px;font-size:.85rem;font-weight:600;color:var(--forest)}
.form input,.form textarea{font:inherit;font-weight:400;color:var(--ink);padding:12px 14px;border:1.5px solid rgba(31,58,46,.2);border-radius:10px;background:var(--cloud)}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--forest);background:#fff}
.form .hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.form .consent{font-size:.78rem;color:var(--mist);line-height:1.5}
.form .btn{border:0;cursor:pointer;font:inherit;font-weight:600;justify-self:start}
.form .btn:disabled{opacity:.6;cursor:wait}
.status{min-height:1.5em;font-size:.9rem}
.status.ok{color:#2f6b2f}.status.err{color:#a33}
.contact .alt{margin-top:28px;font-size:.9rem;color:var(--mist)}
@media(max-width:560px){.form .row{grid-template-columns:1fr}}

footer{background:var(--forest-deep);color:rgba(255,255,255,.7);padding:34px 0;font-size:.85rem}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer a{color:var(--aloe);text-decoration:none}

.draft{background:#fff7d6;color:#6b5a00;font-size:.8rem;text-align:center;padding:6px}

/* Legal pages */
.legal-bar{background:var(--forest);color:#fff;padding:20px 0}
.legal-bar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.legal-bar a{text-decoration:none}
.legal-bar a:not(.brand){font-size:.9rem;color:var(--aloe)}
.legal{padding:64px 0 80px}
.legal .wrap{max-width:760px}
.legal h1{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:32px}
.legal h2{font-size:1.3rem;margin:36px 0 10px}
.legal p{margin-bottom:12px;color:#33433b}
.legal a{color:var(--forest);text-decoration:underline}
.legal mark{background:#fff3b0;color:#5a4a00;padding:1px 6px;border-radius:4px}
