/* ============================================================
   Locus Iste Mundi — shared brand system
   The terraced hillside: mountain shade (top) to sea (bottom).
   Used by both the presentation (index.html) and the tool (jardin.html).
   ============================================================ */
:root{
  /* Ground & stone — the terrace bands */
  --ground:#26301F;        /* deep shaded-valley olive — dark sections */
  --ground-2:#1C2416;      /* deeper — footer */
  --stone:#E8E4D6;         /* dry-stone limestone — light sections */
  --stone-2:#DED9C7;       /* deeper stone — alternate light section */
  --paper:#F1EDE2;         /* card surface on stone */
  --ink:#262318;           /* text on stone */
  --ink-soft:#5C5746;      /* muted text on stone */
  /* Accents from the land */
  --olive:#8C9A5B;
  --olive-deep:#5E6B38;
  --sea:#2E8E90;
  --sea-deep:#1E6E70;
  --citron:#D8A52C;
  --clay:#B65C3A;          /* used very sparingly */
  /* On dark ground */
  --on-dark:#EAE6D8;
  --on-dark-muted:#A7AC90;
  --line-dark:rgba(234,230,216,.16);
  --line-light:rgba(38,35,24,.13);
  /* Fonts */
  --display:'Bricolage Grotesque', system-ui, -apple-system, sans-serif;
  --body:'Hanken Grotesk', system-ui, -apple-system, sans-serif;
  --serif:'Fraunces', Georgia, 'Times New Roman', serif;
  --wrap:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;font-family:var(--body);color:var(--ink);
  background:var(--stone);line-height:1.6;
  font-weight:400;letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.04;margin:0;letter-spacing:-.01em;}

/* ---- Trilingual visibility (FR / IT / EN) ---- */
body.lang-fr [data-lang]:not([data-lang="fr"]){display:none !important;}
body.lang-it [data-lang]:not([data-lang="it"]){display:none !important;}
body.lang-en [data-lang]:not([data-lang="en"]){display:none !important;}

.lat{font-family:var(--serif);font-style:italic;font-weight:400;}

/* ---- Language switch (shared chrome) ---- */
.lang-switch{display:inline-flex;border:1px solid var(--line-dark);border-radius:999px;overflow:hidden;flex:none;}
.lang-switch button{font-family:var(--display);font-weight:600;font-size:.78rem;letter-spacing:.04em;
  padding:6px 12px;border:0;background:transparent;color:var(--on-dark-muted);cursor:pointer;transition:all .2s;}
.lang-switch button[aria-pressed="true"]{background:var(--citron);color:#26301F;}

/* ---- Recurring terrace glyph + eyebrow ---- */
.eyebrow{display:flex;align-items:center;gap:11px;font-family:var(--display);font-weight:600;font-size:.74rem;
  letter-spacing:.22em;text-transform:uppercase;margin:0 0 26px;}
.band--dark .eyebrow, .band--sea .eyebrow{color:var(--citron);}
.band--stone .eyebrow, .band--stone2 .eyebrow{color:var(--olive-deep);}
.terrace-glyph{flex:none;width:30px;height:14px;}
.terrace-glyph path{stroke:currentColor;stroke-width:1.4;fill:none;opacity:.85;}

/* ---- Buttons ---- */
.btn{font-family:var(--display);font-weight:700;font-size:.96rem;letter-spacing:.01em;
  background:var(--citron);color:#26301F;border:0;border-radius:999px;padding:14px 28px;
  text-decoration:none;cursor:pointer;transition:transform .2s,background .2s;display:inline-block;}
.btn:hover{transform:translateY(-2px);background:#e6b53f;}
.btn--ghost{background:transparent;color:var(--on-dark);border:1px solid var(--line-dark);}
.btn--ghost:hover{background:rgba(234,230,216,.08);}

/* ---- Reveal on scroll ---- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;}
.rv.in{opacity:1;transform:none;}

/* ---- Focus + reduced motion ---- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--citron);outline-offset:3px;border-radius:3px;}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;animation:none !important;}
  .rv{opacity:1;transform:none;}
}
