:root{
    --green-deep:#2f8e58;
    --green-sage:#c3d1c9;
    --green-sage-2:#9ab0a4;
    --text-dark:#1a1a1a;
    --text-muted:rgba(0,0,0,.72);
    --white:#ffffff;
    --radius-lg:30px;
    --radius-pill:40px;
    --max-w:1280px;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  body{
    font-family:'Poppins',sans-serif;
    color:var(--text-dark);
    background:var(--white);
    font-size:14px;
    line-height:1.5;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  button{font-family:inherit;cursor:pointer;border:none;}

  .wrap{max-width:var(--max-w);margin:0 auto;padding:0 24px;}

  /* ---------- HEADER ---------- */
  header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:18px 24px;
    max-width:var(--max-w);
    margin:0 auto;
    gap:24px;
  }
  .brand{display:flex;align-items:center;gap:14px;}
  .brand-logo{
    width:48px;height:56px;
    object-fit:contain;
    flex-shrink:0;
  }
  .brand-text{font-size:15px;font-weight:500;line-height:1.3;color:var(--text-dark);}
  .brand-text strong{display:block;font-weight:600;}

  nav.main-nav{display:flex;align-items:center;gap:40px;flex:1;justify-content:center;}
  nav.main-nav .nav-link{font-size:16px;color:var(--text-dark);}
  nav.main-nav .nav-link.active{font-weight:700;}

  /* Tombol Masuk & Daftar (state sebelum login) */
  .header-actions{display:flex;align-items:center;gap:16px;}
  .btn-masuk,
  .btn-daftar{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    height:47px;
    padding:0 26px;

    background:var(--green-deep);
    color:#fff;

    font-size:16px;
    font-weight:500;

    border:1px solid rgba(0,0,0,.3);
    border-radius:var(--radius-pill);

    transition:background .2s ease, transform .2s ease;
    white-space:nowrap;
  }
  .btn-masuk:hover,
  .btn-daftar:hover{
    background:#26744a;
    transform:translateY(-1px);
  }

  /* ---------- HERO ---------- */
  .hero{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:48px;
    align-items:center;
    max-width:var(--max-w);
    margin:24px auto 60px;
    padding:24px;
  }
  .hero-eyebrow{font-size:20px;font-weight:400;margin-bottom:8px;color:var(--text-dark);}
  .hero-title{
    font-size:56px;
    font-weight:500;
    line-height:1.15;
    margin-bottom:32px;
  }
  .btn-primary{
    display:inline-block;
    background:var(--green-deep);
    color:#fff;
    font-weight:500;
    font-size:18px;
    padding:16px 36px;
    border-radius:var(--radius-pill);
    border:1px solid rgba(0,0,0,.3);
    transition:background .2s ease, transform .2s ease;
  }
  .btn-primary:hover{background:#26744a;transform:translateY(-1px);}

  .hero-image{
    width:100%;
    aspect-ratio:662/882;
    border-radius:var(--radius-lg);
    overflow:hidden;

    object-fit:cover;
    object-position:center;
  }

  /* ---------- SECTION SHELL ---------- */
  .section{padding:64px 24px;}
  .section-sage{background:var(--green-sage);}
  .section-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    max-width:var(--max-w);
    margin:0 auto 32px;
  }
  .section-head h2{font-size:40px;font-weight:500;}
  .section-head .see-all{font-size:20px;font-weight:500;color:var(--text-dark);}

  .card-grid{
    max-width:var(--max-w);
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
  }

  .book-card{
    background:transparent;
    border:1px solid rgba(0,0,0,.42);
    border-radius:var(--radius-lg);
    padding:24px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
  .book-cover{
    width:100%;
    aspect-ratio:2/3;
    border-radius:8px;
    margin-bottom:20px;

    object-fit:cover;
    object-position:center;

    background:#e8e8e8; /* fallback selama gambar belum ada / masih loading */
  }

  .book-author{font-size:13px;color:var(--text-muted);margin-bottom:6px;}
  .book-title{font-size:18px;font-weight:600;margin-bottom:20px;min-height:44px;}
  .btn-detail{
    background:var(--green-deep);
    color:#fff;
    font-weight:500;
    font-size:14px;
    padding:10px 22px;
    border-radius:var(--radius-pill);
    border:1px solid rgba(0,0,0,.3);
    align-self:flex-start;
    transition:background .2s ease;
  }
  .btn-detail:hover{background:#26744a;}

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--green-sage-2);
    padding:56px 24px 24px;
  }
  .footer-top{
    max-width:var(--max-w);
    margin:0 auto;
    display:grid;
    grid-template-columns:1.6fr 1fr;
    gap:40px;
  }
  .footer-brand{display:flex;gap:20px;align-items:flex-start;}
  .footer-logo{
    width:96px;height:120px;
    object-fit:contain;
    flex-shrink:0;
  }
  .footer-brand h3{
    font-size:30px;font-weight:600;color:#3f5147;line-height:1.25;margin-bottom:16px;
  }
  .footer-info{font-size:15px;color:#1a1a1a;}
  .footer-info-row{
    display:flex;gap:12px;align-items:flex-start;margin-bottom:12px;
  }
  .footer-info-row .ico{
    width:22px;height:22px;flex-shrink:0;margin-top:2px;
    display:flex;align-items:center;justify-content:center;
  }
  .footer-social{margin-top:20px;}
  .footer-social h4{font-size:16px;font-weight:600;margin-bottom:14px;}
  .social-icons{display:flex;gap:14px;}
  .social-icons a{
    width:38px;height:38px;border-radius:50%;
    background:rgba(255,255,255,.5);
    display:flex;align-items:center;justify-content:center;
  }

  .footer-links h4{font-size:16px;font-weight:600;margin-bottom:18px;}
  .footer-links ul li{margin-bottom:14px;font-size:15px;}

  .footer-bottom{
    max-width:var(--max-w);
    margin:40px auto 0;
    padding-top:20px;
    border-top:1px solid rgba(0,0,0,.15);
    font-size:13px;
    color:#1a1a1a;
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:1024px){
    nav.main-nav{display:none;}
    .hero{grid-template-columns:1fr;}
    .hero-title{font-size:42px;}
    .card-grid{grid-template-columns:repeat(2,1fr);}
    .footer-top{grid-template-columns:1fr;}
  }
  @media (max-width:560px){
    .card-grid{grid-template-columns:1fr;}
    .hero-title{font-size:34px;}
    header{flex-wrap:wrap;}
    .header-actions{width:100%;justify-content:flex-end;}
  }