:root{
    --forest-deep:#20291F;
    --forest:#2E3B2E;
    --forest-mid:#3F4F3A;
    --moss:#7A8B6F;
    --orange:#C96442;
    --peach:#E8A882;
    --cream:#F5EDE3;
    --cream-soft:#EDE4DA;
    --white:#FFFFFF;
    --radius:14px;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Karla',sans-serif;
    color:var(--forest-deep);
    background:var(--cream);
    line-height:1.65;
    font-size:17px;
  }
  h1,h2,h3,.eyebrow{font-family:'Fraunces',serif;}
  h1{font-size:clamp(2.6rem,6vw,4.4rem);font-weight:500;line-height:1.05;letter-spacing:-0.01em;}
  h2{font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:500;margin-bottom:1.2rem;}
  h3{font-size:1.15rem;font-weight:600;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  .wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
  section{padding:88px 0;}
  .eyebrow-tag{display:inline-block;color:var(--orange);font-size:0.9rem;font-weight:700;letter-spacing:0.03em;margin-bottom:12px;text-transform:uppercase;}

  /* header */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(245,237,227,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid rgba(32,41,31,0.1);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1080px;margin:0 auto;gap:16px;}
  .brand{display:flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-weight:600;font-size:1.3rem;color:var(--forest);}
  .brand svg{flex-shrink:0;}
  .nav-links{display:flex;gap:28px;font-size:0.95rem;font-weight:500;}
  .nav-links a{opacity:0.85;transition:opacity .2s;}
  .nav-links a:hover{opacity:1;}
  .nav-cta{
    background:var(--orange);color:var(--white);padding:10px 20px;border-radius:999px;
    font-weight:700;font-size:0.9rem;white-space:nowrap;
  }
  .menu-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--forest);cursor:pointer;}

  /* hero */
  .hero{background:var(--forest-deep);color:var(--cream);position:relative;overflow:hidden;padding:120px 0 100px;}
  .hero .wrap{position:relative;z-index:2;max-width:760px;}
  .eyebrow{
    display:inline-block;color:var(--peach);font-size:0.95rem;font-weight:500;
    letter-spacing:0.02em;margin-bottom:20px;
  }
  .hero p.lead{font-size:1.2rem;color:rgba(245,237,227,0.85);margin:24px 0 36px;max-width:640px;}
  .cta-row{display:flex;gap:16px;flex-wrap:wrap;}
  .btn{
    display:inline-block;padding:14px 28px;border-radius:999px;font-weight:700;font-size:0.98rem;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{background:var(--orange);color:var(--white);}
  .btn-secondary{background:transparent;color:var(--cream);border:1.5px solid rgba(245,237,227,0.4);}
  .roof{position:absolute;right:-60px;top:-40px;opacity:0.5;z-index:1;}

  /* grids & cards */
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px;}
  .grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px;}
  .card{
    background:var(--white);border-radius:var(--radius);padding:28px 24px;
    border:1px solid rgba(32,41,31,0.08);
  }
  .card .num{
    width:36px;height:36px;border-radius:50%;background:var(--forest);color:var(--cream);
    display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:600;
    margin-bottom:16px;font-size:0.95rem;
  }
  .card p{color:var(--forest-mid);font-size:0.95rem;}
  .card ul{margin-top:10px;}
  .card ul li{color:var(--forest-mid);font-size:0.93rem;padding:4px 0;position:relative;padding-left:16px;}
  .card ul li::before{content:"–";position:absolute;left:0;color:var(--orange);}
  .themes{margin-top:36px;display:flex;flex-wrap:wrap;gap:10px;}
  .tag{background:var(--cream-soft);color:var(--forest);padding:8px 16px;border-radius:999px;font-size:0.9rem;font-weight:500;border:1px solid rgba(32,41,31,0.1);}

  .section-white{background:var(--white);}

  /* programme */
  .prog-year{font-family:'Fraunces',serif;font-weight:600;color:var(--orange);font-size:1.1rem;margin:36px 0 16px;}
  .prog-year:first-of-type{margin-top:0;}
  .prog-item{
    display:flex;gap:20px;align-items:baseline;padding:16px 0;
    border-bottom:1px solid rgba(32,41,31,0.1);
  }
  .prog-item:last-child{border-bottom:none;}
  .prog-date{flex-shrink:0;width:130px;font-weight:700;color:var(--forest);font-size:0.92rem;}
  .prog-topic{font-weight:600;}
  .prog-who{color:var(--forest-mid);font-size:0.9rem;}

  /* équipe */
  .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px;}
  .lead-card{background:var(--white);border-radius:var(--radius);padding:32px;border:1px solid rgba(32,41,31,0.08);}
  .lead-card .role{color:var(--orange);font-weight:700;font-size:0.85rem;text-transform:uppercase;letter-spacing:0.03em;margin-bottom:6px;}
  .lead-card h3{margin-bottom:6px;}
  .lead-card .spec{color:var(--forest-mid);font-size:0.95rem;margin-bottom:14px;}
  .lead-card .meta{font-size:0.88rem;color:var(--forest-mid);}
  .lead-card .meta a{color:var(--orange);font-weight:600;}
  .contrib-note{margin-top:28px;color:var(--forest-mid);font-size:0.95rem;max-width:640px;}

  /* fait pour vous */
  .fitcheck{background:var(--forest-deep);color:var(--cream);}
  .check-list{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px;}
  .check-item{display:flex;gap:14px;align-items:flex-start;font-size:1.02rem;}
  .check-item .mark{
    flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--orange);
    display:flex;align-items:center;justify-content:center;font-size:0.85rem;font-weight:700;color:var(--white);
    margin-top:2px;
  }

  /* tarif */
  .price-card{
    background:var(--white);border-radius:20px;padding:48px;margin-top:40px;
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:32px;
    border:1px solid rgba(32,41,31,0.1);
  }
  .price-main .amount{font-family:'Fraunces',serif;font-size:3.4rem;font-weight:600;color:var(--forest);}
  .price-main .per{font-size:1.05rem;color:var(--forest-mid);}
  .price-facts{display:flex;gap:36px;flex-wrap:wrap;}
  .price-fact strong{display:block;font-family:'Fraunces',serif;font-size:1.3rem;color:var(--orange);}
  .price-fact span{font-size:0.85rem;color:var(--forest-mid);}

  /* rejoindre */
  .values{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 8px;}
  .contact-block{
    background:var(--white);border-radius:var(--radius);padding:40px;
    display:grid;grid-template-columns:1fr 1fr;gap:40px;border:1px solid rgba(32,41,31,0.08);
  }
  .contact-info h3{margin-bottom:12px;}
  .contact-info a.phone,.contact-info a.mail{color:var(--orange);font-weight:700;}
  .contact-info p.secret{margin-top:14px;color:var(--forest-mid);font-size:0.9rem;}
  form{display:flex;flex-direction:column;gap:14px;}
  input,textarea{
    padding:13px 16px;border-radius:10px;border:1px solid rgba(32,41,31,0.2);
    font-family:'Karla',sans-serif;font-size:0.95rem;background:var(--cream);
  }
  textarea{min-height:100px;resize:vertical;}
  input:focus,textarea:focus{outline:2px solid var(--orange);outline-offset:1px;}

  footer{background:var(--forest-deep);color:rgba(245,237,227,0.7);padding:48px 0;font-size:0.9rem;}
  .footer-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
  .footer-row a{opacity:0.9;}
  .footer-links{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:24px;padding-top:24px;border-top:1px solid rgba(245,237,227,0.15);font-size:0.85rem;}
  .footer-links a{opacity:0.75;}
  .footer-links a:hover{opacity:1;}

  /* stub / placeholder pages */
  .stub-header{background:var(--forest-deep);color:var(--cream);padding:64px 0 48px;}
  .breadcrumb{font-size:0.9rem;opacity:0.7;margin-bottom:16px;}
  .breadcrumb a{text-decoration:underline;opacity:1;}
  .stub-body{padding:64px 0;}
  .stub-panel{
    background:var(--white);border:1px dashed rgba(32,41,31,0.25);border-radius:var(--radius);
    padding:48px;text-align:center;max-width:560px;margin:0 auto;
  }
  .stub-panel .icon{font-size:2rem;margin-bottom:16px;}
  .stub-panel p{color:var(--forest-mid);margin-top:10px;}

  @media (max-width:860px){
    .grid-3{grid-template-columns:1fr 1fr;}
    .grid-4{grid-template-columns:1fr 1fr;}
    .grid-2{grid-template-columns:1fr;}
    .check-list{grid-template-columns:1fr;}
    .contact-block{grid-template-columns:1fr;}
  }
  @media (max-width:640px){
    .nav-links{display:none;}
    .menu-toggle{display:block;}
    .grid-3{grid-template-columns:1fr;}
    .grid-4{grid-template-columns:1fr;}
    .price-card{flex-direction:column;align-items:flex-start;}
    .prog-item{flex-direction:column;gap:4px;}
    .prog-date{width:auto;}
    section{padding:56px 0;}
  }
