/* ============================================================
   Osalie — refonte (Direction C · « Clarté »)
   Palette : blanc cassé, vert sauge, encre profonde.
   Type    : Newsreader (titres) · Hanken Grotesk (texte).
   ============================================================ */

:root{
  --bg:#FAFAF7;
  --surface:#FFFFFF;
  --surface-2:#FCFCFA;
  --ink:#16201B;
  --muted:#4C534D;
  --subtle:#6E756F;
  --faint:#8A918A;
  --accent:#2E5A4B;
  --accent-dark:#244A3D;
  --accent-soft:#E4ECE6;
  --sand:#C9BBA0;
  --line:#E6E6E0;
  --sage-panel:#EEF3EF;
  --sage-panel-line:#DDE6DE;
  --r-sm:6px;
  --r-md:8px;
  --r-lg:12px;
  --ease:cubic-bezier(0.2,0,0,1);
  --max:1200px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
::selection{background:var(--accent);color:#fff;}

body{
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}

.container{max-width:var(--max);margin:0 auto;padding-left:40px;padding-right:40px;}
.serif{font-family:'Newsreader',Georgia,serif;}

/* ---------- Header ---------- */
.header{
  position:sticky;top:0;z-index:50;
  background:rgba(250,250,247,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:20px;padding-bottom:20px;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;}
.brand__name{font-family:'Newsreader',serif;font-weight:400;font-size:23px;letter-spacing:.3px;}
.nav{display:flex;align-items:center;gap:32px;}
.nav__link{position:relative;text-decoration:none;color:var(--muted);font-size:14.5px;font-weight:500;transition:color .2s var(--ease);}
.nav__link::after{content:"";position:absolute;left:0;bottom:-4px;height:1.5px;width:0;background:var(--accent);transition:width .3s var(--ease);}
.nav__link:hover{color:var(--accent);}
.nav__link:hover::after{width:100%;}

.lang{display:flex;align-items:center;border:1px solid #D7DAD4;border-radius:var(--r-md);overflow:hidden;}
.lang__btn{border:none;background:transparent;font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.5px;padding:7px 13px;cursor:pointer;color:var(--subtle);transition:all .2s var(--ease);}
.lang__btn.is-active{background:var(--accent);color:#fff;}

.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;border-radius:var(--r-md);cursor:pointer;transition:background .2s var(--ease),transform .12s var(--ease),color .2s var(--ease);}
.btn svg{flex-shrink:0;}
.btn--dark{background:var(--ink);color:#fff;font-size:14.5px;padding:11px 18px;}
.btn--dark:hover{background:var(--accent);}
.btn--sage{background:var(--accent);color:#fff;font-size:16px;padding:15px 28px;}
.btn--sage:hover{background:var(--accent-dark);transform:translateY(-2px);}
.btn--sage-foot{background:var(--accent);color:#fff;font-size:16px;padding:15px 28px;white-space:nowrap;}
.btn--sage-foot:hover{background:#3A7259;}

/* ---------- Hero ---------- */
.hero{display:grid;grid-template-columns:1.35fr .8fr;gap:72px;align-items:end;padding-top:100px;padding-bottom:90px;}
.hero__kicker{display:flex;align-items:center;gap:16px;margin-bottom:34px;}
.kicker-num{font-family:'Newsreader',serif;font-style:italic;font-size:18px;color:var(--accent);}
.kicker-rule{flex:1;height:1px;background:#D7DAD4;max-width:60px;}
.kicker-label{font-size:12.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--faint);}
.hero__title{font-family:'Newsreader',serif;font-weight:300;font-size:68px;line-height:1.02;letter-spacing:-1px;margin-bottom:34px;}
.hero__lead{font-size:19px;line-height:1.7;color:var(--muted);max-width:540px;margin-bottom:40px;}
.hero__cta{display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.tel{font-size:15px;color:var(--subtle);}

.portrait{width:100%;aspect-ratio:4/5;background:#ECEEE9;border-radius:var(--r-md);overflow:hidden;display:flex;align-items:center;justify-content:center;}
.portrait img{width:200%;height:200%;object-fit:contain;}
.portrait__ph{display:flex;flex-direction:column;align-items:center;gap:10px;color:#9AA39B;font-size:14px;}
.portrait__ph svg{opacity:.6;}
.portrait-cap{margin-top:16px;display:flex;align-items:center;gap:10px;font-size:14px;color:var(--faint);}
.portrait-cap::before{content:"";width:18px;height:1px;background:var(--accent);}

/* ---------- Generic section ---------- */
.section{padding-top:90px;padding-bottom:90px;}
.section--white{background:var(--surface);border-top:1px solid var(--line);}
.sec-head{display:grid;grid-template-columns:.5fr 1fr;gap:40px;margin-bottom:50px;}
.sec-index{font-family:'Newsreader',serif;font-style:italic;font-size:18px;color:var(--accent);}
.h2{font-family:'Newsreader',serif;font-weight:300;font-size:40px;line-height:1.12;letter-spacing:-.5px;max-width:560px;}
.sec-sub{font-size:16px;color:var(--subtle);margin-top:8px;}

/* ---------- Offers ---------- */
.offers{border-top:1px solid var(--ink);}
.offer{display:grid;grid-template-columns:60px 1fr auto;gap:28px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line);transition:padding-left .2s var(--ease);}
.offer:hover{padding-left:8px;}
.offer__num{font-family:'Newsreader',serif;font-size:34px;font-weight:300;color:#C2C9BF;}
.offer__title{font-size:20px;font-weight:600;line-height:1.3;}
.offer__desc{font-size:15px;color:var(--subtle);margin-top:5px;}
.offer__price{font-family:'Newsreader',serif;font-size:28px;font-weight:400;white-space:nowrap;justify-self:end;}
.badge{display:inline-block;margin-left:12px;vertical-align:middle;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:var(--r-sm);}
.note{font-size:13px;color:var(--faint);margin-top:24px;max-width:780px;}

/* ---------- Method ---------- */
.method-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);}
.method-block{padding:36px 36px 36px 0;border-bottom:1px solid var(--line);}
.h3{font-family:'Newsreader',serif;font-weight:400;font-size:24px;color:var(--accent);margin-bottom:12px;}
.method-block p{font-size:16px;color:var(--muted);max-width:440px;}

/* ---------- Bioevokativ ---------- */
.bio{background:var(--sage-panel);border-top:1px solid var(--sage-panel-line);border-bottom:1px solid var(--sage-panel-line);padding-top:84px;padding-bottom:84px;}
.bio__inner{max-width:1000px;margin:0 auto;padding-left:40px;padding-right:40px;}
.bio__title{font-family:'Newsreader',serif;font-weight:300;font-size:38px;letter-spacing:-.5px;color:#1C3A2F;margin-bottom:34px;}
.bio__body{display:flex;flex-direction:column;gap:22px;}
.bio__body p{font-size:18px;line-height:1.75;color:#2C3A33;}

/* ---------- Closing ---------- */
.closing{max-width:840px;margin:0 auto;padding:96px 40px;text-align:center;}
.closing__lines{display:flex;flex-direction:column;gap:20px;align-items:center;}
.closing__line{font-family:'Newsreader',serif;font-weight:300;font-size:27px;line-height:1.45;letter-spacing:-.3px;max-width:680px;}
.divider{margin:40px auto 0;width:36px;height:1px;background:var(--accent);}
.closing__role{margin-top:28px;font-size:12.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--faint);}
.closing__sign{font-family:'Newsreader',serif;font-style:italic;font-weight:400;font-size:42px;color:var(--accent);margin-top:8px;}

/* ---------- Reviews ---------- */
.reviews-grid{columns:3;column-gap:32px;}
.review{break-inside:avoid;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;margin-bottom:32px;background:var(--surface-2);}
.review__stars{color:var(--accent);font-size:14px;letter-spacing:2px;margin-bottom:14px;}
.review__text{font-family:'Newsreader',serif;font-size:17px;line-height:1.55;color:#26302A;margin-bottom:18px;}
.review__foot{display:flex;align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid #EDEEE9;}
.review__author{font-weight:600;font-size:14.5px;}
.review__date{font-size:13px;color:#9AA09A;}

/* Reviews: load-more */
.review--hidden{display:none;}
.reviews-load{text-align:center;margin-top:40px;}
.btn--load{background:transparent;border:1.5px solid var(--accent);color:var(--accent);font-size:15px;font-weight:600;padding:14px 32px;font-family:inherit;border-radius:var(--r-md);cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease),transform .12s var(--ease);}
.btn--load:hover{background:var(--accent);color:#fff;transform:translateY(-2px);}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:#E9EDE9;padding-top:80px;padding-bottom:40px;}
.footer__grid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;}
.footer__role{font-family:'Newsreader',serif;font-weight:300;font-size:36px;line-height:1.1;letter-spacing:-.5px;margin-bottom:10px;}
.footer__tel{font-family:'Newsreader',serif;font-size:40px;color:#9FC3B2;text-decoration:none;transition:color .2s var(--ease);}
.footer__tel:hover{color:#fff;}
.footer__bar{margin-top:50px;padding-top:24px;border-top:1px solid rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;color:#8FA096;font-size:14px;}

/* ---------- Hamburger button ---------- */
.burger{display:none;background:none;border:none;cursor:pointer;padding:6px;z-index:60;flex-direction:column;gap:5px;width:32px;}
.burger__line{display:block;width:100%;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .2s var(--ease);}
.nav-open .burger__line:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-open .burger__line:nth-child(2){opacity:0;}
.nav-open .burger__line:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- Responsive ---------- */

/* Tablet */
@media (max-width:1080px){
  .container,.bio__inner{padding-left:28px;padding-right:28px;}
  .hero{grid-template-columns:1.2fr .9fr;gap:48px;padding-top:80px;padding-bottom:72px;}
  .hero__title{font-size:54px;}
  .hero__lead{font-size:17px;}
  .reviews-grid{columns:2;column-gap:24px;}
  .sec-head{gap:28px;}
  .footer__tel{font-size:34px;}
  .footer__role{font-size:30px;}
}

/* Mobile landscape / small tablet */
@media (max-width:880px){
  .container,.bio__inner{padding-left:22px;padding-right:22px;}
  .burger{display:flex;}
  /* Remove backdrop-filter when nav open — it creates a containing block
     that traps position:fixed children inside the header.
     Raise header z-index above the overlay so nav links are clickable. */
  .nav-open .header{backdrop-filter:none;-webkit-backdrop-filter:none;z-index:10000;}
  .nav{
    position:fixed;top:0;right:0;bottom:0;
    width:min(320px,85vw);
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:80px 28px 28px;
    background:var(--surface);
    border-left:1px solid var(--line);
    box-shadow:-8px 0 30px rgba(0,0,0,0.08);
    transform:translateX(100%);
    transition:transform .35s var(--ease);
    z-index:999;
    overflow-y:auto;
  }
  .nav-open .nav{transform:translateX(0);}
  /* Dark overlay behind nav panel */
  .nav-open::after{
    content:"";position:fixed;inset:0;
    background:rgba(0,0,0,0.35);
    z-index:998;
  }
  .burger{z-index:1000;}
  .nav__link{display:block;font-size:17px;padding:16px 0;border-bottom:1px solid var(--line);color:var(--ink);}
  .nav__link::after{display:none;}
  .lang{justify-content:center;margin:20px 0;}
  .btn--dark{justify-content:center;margin-top:8px;}

  .hero{grid-template-columns:1fr;gap:40px;padding-top:64px;padding-bottom:64px;}
  .hero__title{font-size:44px;}
  .hero__lead{font-size:16px;max-width:100%;}
  .portrait{max-width:340px;margin:0 auto;}
  .portrait-cap{justify-content:center;}

  .sec-head{grid-template-columns:1fr;gap:14px;margin-bottom:32px;}
  .section{padding-top:60px;padding-bottom:60px;}
  .h2,.bio__title{font-size:32px;}

  .offer{grid-template-columns:40px 1fr;gap:16px;}
  .offer__price{grid-column:2;justify-self:start;margin-top:4px;}

  .method-grid{grid-template-columns:1fr;}
  .method-block{padding-right:0;}

  .reviews-grid{columns:1;}

  .bio__body p{font-size:16px;}

  .closing{padding:64px 22px;}
  .closing__line{font-size:22px;}
  .closing__sign{font-size:34px;}

  .footer__grid{grid-template-columns:1fr;align-items:start;gap:24px;}
  .footer__tel{font-size:28px;}
  .footer__role{font-size:28px;}
  .footer{padding-top:56px;padding-bottom:32px;}
  .footer__bar{flex-direction:column;align-items:flex-start;gap:8px;font-size:13px;}
}

/* Mobile portrait */
@media (max-width:560px){
  .hero__title{font-size:34px;margin-bottom:24px;}
  .hero__lead{font-size:15px;margin-bottom:28px;}
  .hero__kicker{margin-bottom:24px;}
  .hero__cta{flex-direction:column;align-items:flex-start;gap:14px;}
  .btn--sage{width:100%;justify-content:center;padding:16px 24px;}
  .tel{font-size:14px;}

  .h2,.bio__title{font-size:27px;}
  .sec-head{margin-bottom:24px;}
  .offer__title{font-size:17px;}
  .offer__num{font-size:26px;}
  .offer__price{font-size:22px;}

  .bio{padding-top:56px;padding-bottom:56px;}
  .bio__body p{font-size:15px;line-height:1.7;}

  .closing__line{font-size:19px;}
  .closing__sign{font-size:30px;}
  .closing{padding:48px 18px;}

  .review{padding:20px;}
  .review__text{font-size:15px;}

  .footer__role{font-size:24px;}
  .footer__tel{font-size:24px;}
  .btn--sage-foot{width:100%;justify-content:center;}
}
