/* Accueil Agro Easy : botanique éditoriale, hiérarchie claire et détails de marque. */
.home-page {
  position: relative;
  isolation: isolate;
}

.home-page .hero-panel.home-hero {
  min-height: 365px;
  padding: 47px 50px;
  border-radius: 30px;
  background:
    radial-gradient(circle at 82% 22%, rgba(199, 222, 183, .16), transparent 25%),
    linear-gradient(125deg, #103c30 0%, #174a3a 55%, #205b40 100%);
  box-shadow: 0 24px 55px rgba(17, 59, 45, .18);
}

.home-hero::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  content: "";
  background: radial-gradient(ellipse at 100% 100%, rgba(207, 165, 83, .12), transparent 36%);
}

.home-hero .hero-copy { max-width: 590px; }
.home-hero .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #d2e2cf;
}
.home-hero .eyebrow::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #d0a24d;
  box-shadow: 0 0 0 4px rgba(208, 162, 77, .16);
  content: "";
}
.home-hero h1 {
  max-width: 650px;
  margin-top: 17px;
  font-size: clamp(42px, 5vw, 66px);
  letter-spacing: -2.9px;
}
.home-hero .hero-intro { max-width: 445px; color: #e0e9dd; font-size: 14px; }
.home-hero .button-light {
  min-height: 48px;
  padding-inline: 19px;
  box-shadow: 0 8px 20px rgba(5, 30, 22, .13);
}
.home-hero .hero-hint { max-width: 148px; line-height: 1.45; color: #d6e0d4; }

.home-hero-art {
  z-index: 1;
  right: 3%;
  width: 330px;
  height: 330px;
  opacity: 1;
}
.home-hero-art .orbit-ring { border-color: rgba(225, 239, 220, .24); }
.home-hero-art .orbit-ring-b { border-style: dashed; border-color: rgba(225, 239, 220, .2); }
.home-logo-medallion {
  position: absolute;
  top: 65px;
  left: 79px;
  width: 164px;
  height: 164px;
  padding: 8px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 50%;
  background: #f6f5ed;
  box-shadow: 0 18px 42px rgba(5, 31, 23, .24);
}
.home-logo-medallion img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.hero-float-card {
  position: absolute;
  right: -1px;
  bottom: 4px;
  display: flex;
  min-width: 226px;
  align-items: center;
  gap: 11px;
  padding: 13px 15px;
  border: 1px solid rgba(255, 255, 255, .62);
  border-radius: 16px;
  background: rgba(255, 254, 250, .96);
  box-shadow: 0 12px 28px rgba(5, 31, 23, .2);
  color: var(--ink);
  text-align: left;
}
.hero-float-icon {
  display: grid;
  width: 33px;
  height: 33px;
  flex: none;
  place-items: center;
  border-radius: 11px;
  background: var(--mint);
  color: var(--forest);
}
.hero-float-icon .icon { width: 17px; height: 17px; stroke-width: 2.3; }
.hero-float-copy { display: grid; gap: 4px; }
.hero-float-copy small { color: var(--leaf); font-size: 8px; font-weight: 800; letter-spacing: 1px; }
.hero-float-copy strong { color: var(--ink); font: 800 11px Manrope, sans-serif; }

.home-stat-strip {
  position: relative;
  z-index: 2;
  gap: 17px;
  margin: -17px 20px 0;
  padding: 14px 20px;
  border: 1px solid rgba(222, 229, 217, .9);
  border-radius: 18px;
  background: rgba(255, 254, 250, .98);
  box-shadow: 0 13px 32px rgba(30, 60, 43, .075);
}
.home-stat-strip .stat-cell { align-items: center; gap: 11px; }
.home-stat-strip .stat-icon {
  display: grid;
  width: 36px;
  height: 36px;
  flex: none;
  place-items: center;
  border-radius: 12px;
  background: var(--mint2);
  color: var(--forest);
}
.home-stat-strip .stat-icon .icon { width: 17px; height: 17px; }
.home-stat-strip .stat-copy { display: grid; gap: 1px; }
.home-stat-strip .stat-number { font-size: 22px; line-height: 1.1; }
.home-stat-strip .stat-label { font-size: 9px; line-height: 1.35; }
.home-stat-strip .stat-divider { height: 33px; background: #e5e9e1; }
.home-stat-strip .stat-aside {
  max-width: 235px;
  padding-left: 15px;
  border-left: 1px solid #e5e9e1;
  font-size: 9px;
  line-height: 1.5;
}

.home-semester-section { margin-top: 31px; }
.home-semester-section .section-heading { align-items: flex-end; margin-bottom: 15px; }
.home-semester-section .section-heading h2,
.home-page .recent-section .section-heading h2 { font-size: 22px; letter-spacing: -.65px; }
.home-page .semester-grid { gap: 15px; }
.home-page .semester-card:not(.upcoming-card) {
  position: relative;
  overflow: hidden;
  background: linear-gradient(145deg, #fffefa 0%, #f8faf5 100%);
  box-shadow: 0 7px 21px rgba(31, 58, 43, .045);
}
.home-page .semester-card:not(.upcoming-card)::before {
  position: absolute;
  top: -55px;
  right: -48px;
  width: 145px;
  height: 145px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(199, 221, 193, .32), rgba(199, 221, 193, 0) 70%);
  content: "";
  pointer-events: none;
}
.home-page .semester-card:not(.upcoming-card) > * { position: relative; z-index: 1; }
.home-page .semester-card:not(.upcoming-card) .round-arrow {
  width: 34px;
  height: 34px;
  box-shadow: 0 5px 13px rgba(23, 74, 58, .15);
}
.home-page .coming-note { margin-top: 13px; padding: 13px 15px; font-size: 10px; }
.home-page .recent-section { margin-top: 31px; }
.home-page .empty-inline {
  min-height: 83px;
  border-style: dashed;
  background: linear-gradient(120deg, #fffefa, #f5f8f1);
  box-shadow: 0 4px 15px rgba(31, 58, 43, .035);
}

@media (max-width: 1100px) {
  .home-page .hero-panel.home-hero { padding: 40px 35px; }
  .home-hero .hero-copy { max-width: 410px; }
  .home-hero h1 { font-size: clamp(38px, 4.6vw, 52px); letter-spacing: -2px; }
  .home-hero-art { right: 0; width: 270px; height: 270px; }
  .home-logo-medallion { top: 52px; left: 60px; width: 138px; height: 138px; }
  .hero-float-card { right: 0; min-width: 195px; }
  .home-stat-strip { margin-inline: 12px; }
}

@media (max-width: 1000px) and (min-width: 801px) {
  .home-hero .hero-copy { max-width: 360px; }
  .home-hero h1 { font-size: clamp(36px, 4.3vw, 44px); letter-spacing: -1.8px; }
  .home-hero .hero-intro { max-width: 350px; font-size: 12px; }
  .home-hero-art { right: 8px; width: 230px; height: 230px; }
  .home-logo-medallion { top: 44px; left: 51px; width: 120px; height: 120px; }
  .hero-float-card { right: 0; width: 200px; min-width: 200px; gap: 8px; padding: 10px; }
  .hero-float-icon { width: 29px; height: 29px; }
  .hero-float-copy strong { font-size: 10px; }
}

@media (max-width: 800px) {
  .home-page .hero-panel.home-hero {
    min-height: 390px;
    align-items: flex-start;
    padding: 28px 23px 24px;
    border-radius: 25px;
  }
  .home-hero .hero-copy { width: 100%; max-width: 100%; }
  .home-hero h1 {
    max-width: 320px;
    margin: 15px 0 12px;
    font-size: clamp(35px, 9vw, 42px);
    line-height: 1.04;
    letter-spacing: -1.7px;
  }
  .home-hero .hero-intro { max-width: 310px; font-size: 12px; line-height: 1.65; }
  .home-hero .hero-actions { gap: 11px; margin-top: 20px; }
  .home-hero .button-light { min-height: 43px; padding-inline: 14px; font-size: 11px; }
  .home-hero .hero-hint { display: none; }
  .home-hero-art {
    top: auto;
    right: 0;
    bottom: 20px;
    width: 170px;
    height: 170px;
    transform: none;
    opacity: .84;
  }
  .home-hero-art .orbit-ring-a { inset: 4px; }
  .home-hero-art .orbit-ring-b { inset: 22px; }
  .home-logo-medallion { top: 31px; left: 39px; width: 86px; height: 86px; padding: 4px; }
  .hero-float-card {
    right: 0;
    bottom: 7px;
    width: 164px;
    min-width: 164px;
    gap: 7px;
    padding: 8px 9px;
    border-radius: 11px;
  }
  .hero-float-icon { width: 25px; height: 25px; }
  .hero-float-copy strong { font-size: 8px; }
  .home-stat-strip {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 9px;
    margin: -14px 8px 0;
    padding: 13px 12px;
  }
  .home-stat-strip .stat-cell { gap: 8px; }
  .home-stat-strip .stat-icon { width: 31px; height: 31px; border-radius: 10px; }
  .home-stat-strip .stat-number { font-size: 19px; }
  .home-stat-strip .stat-label { font-size: 8px; }
  .home-stat-strip .stat-aside {
    grid-column: 1 / -1;
    max-width: none;
    padding: 9px 0 0;
    border-top: 1px solid #e5e9e1;
    border-left: 0;
    font-size: 9px;
    text-align: left;
  }
  .home-semester-section { margin-top: 28px; }
  .home-semester-section .section-heading h2,
  .home-page .recent-section .section-heading h2 { font-size: 18px; }
  .home-page .semester-grid { gap: 12px; }
  .home-page .recent-section { margin-top: 26px; }
}

@media (max-width: 480px) {
  .home-page .hero-panel.home-hero { min-height: 390px; padding: 26px 20px 22px; }
  .home-hero .eyebrow { font-size: 8px; letter-spacing: 1.3px; }
  .home-hero h1 { max-width: 300px; font-size: clamp(34px, 9.4vw, 39px); }
  .home-hero .hero-intro { max-width: 286px; font-size: 11px; }
  .home-hero .hero-actions { gap: 9px; flex-wrap: wrap; }
  .home-hero .hero-hint { max-width: 120px; font-size: 8px; }
  .home-hero-art { right: 0; bottom: 20px; }
  .hero-float-card { right: 0; bottom: 7px; width: 164px; min-width: 164px; }
  .home-stat-strip { gap: 7px; padding: 12px 9px; }
  .home-stat-strip .stat-icon { width: 29px; height: 29px; }
  .home-stat-strip .stat-label { font-size: 7px; }
  .home-stat-strip .stat-aside { font-size: 8px; }
  .home-semester-section .section-heading h2,
  .home-page .recent-section .section-heading h2 { font-size: 16px; }
  .home-page .coming-note { padding: 11px 12px; font-size: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .semester-card:not(.upcoming-card) { transition: none; }
}
