:root{
    --green-deep:#2f8e58;
    --green-sage:#c3d1c9;
    --green-sage-2:#9ab0a4;
    --text-dark:#1a1a1a;
    --text-muted:rgba(0,0,0,.72);
    --white:#ffffff;
    --border:rgba(0,0,0,.3);
    --border-soft:rgba(0,0,0,.15);
    --radius-lg:30px;
    --radius-md:25px;
    --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 (matches home.css) ---------- */
  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;}

  .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);
  }

  @media (max-width:1024px){
    nav.main-nav{display:none;}
  }
  @media (max-width:560px){
    header{flex-wrap:wrap;}
    .header-actions{width:100%;justify-content:flex-end;}
  }

  /* ---------- 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;
  }
  .hero-social{display:flex;gap:18px;}
  .hero-social a{
    width:32px;height:32px;
    display:flex;align-items:center;justify-content:center;
    color:var(--text-dark);
  }
  .hero-social svg{width:100%;height:100%;}

  .hero-image{
    width:100%;
    aspect-ratio:662/882;
    border-radius:var(--radius-lg);
    overflow:hidden;
    object-fit:cover;
    object-position:center;
    background:#e8e8e8; /* fallback selama gambar belum ada / masih loading */
  }

  @media (max-width:1024px){
    .hero{grid-template-columns:1fr;}
    .hero-title{font-size:42px;}
  }
  @media (max-width:560px){
    .hero-title{font-size:34px;}
  }

  /* ---------- SECTION SHELL ---------- */
  .section{padding:64px 24px;}
  .section-head{
    display:flex;
    align-items:baseline;
    justify-content:center;
    max-width:var(--max-w);
    margin:0 auto 32px;
  }
  .section-head h2{
    font-size:40px;
    font-weight:500;
    letter-spacing:1px;
    text-align:center;
  }

  /* ---------- FILTER CARD ---------- */
  .filter-card{
    max-width:var(--max-w);
    margin:0 auto 56px;
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:clamp(24px,4vw,48px);
  }

  .field{margin-bottom:28px;}
  .field label{
    display:block;
    font-size:18px;
    font-weight:500;
    margin-bottom:12px;
    color:var(--text-dark);
  }

  .field input[type="text"],
  .field select{
    width:100%;
    height:56px;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    padding:0 24px;
    font-family:inherit;
    font-size:15px;
    background:#fff;
    color:var(--text-dark);
    appearance:none;
    -webkit-appearance:none;
  }
  .field input[type="text"]:focus,
  .field select:focus{
    outline:2px solid var(--green-deep);
    outline-offset:1px;
  }

  .select-wrap{position:relative;}
  .select-wrap::after{
    content:"";
    position:absolute;
    right:24px; top:50%;
    width:12px; height:8px;
    transform:translateY(-50%);
    background:currentColor;
    clip-path:polygon(0 0, 100% 0, 50% 100%);
    pointer-events:none;
  }

  .filter-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px 28px;
  }
  .filter-grid .field.field-search{grid-column:1 / -1;}

  .filter-card .field:last-of-type{margin-bottom:0;}

  .filter-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:8px;
  }

  @media (max-width:700px){
    .filter-grid{grid-template-columns:1fr;}
  }

  /* ---------- BOOK GRID (matches home.css card-grid) ---------- */
  .card-grid{
    max-width:var(--max-w);
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    padding:0 24px 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;}

  @media (max-width:1024px){
    .card-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:560px){
    .card-grid{grid-template-columns:1fr;}
  }

  /* ---------- FOOTER (matches home.css) ---------- */
  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-info-row a{text-decoration:underline;}
  .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;
  }

  @media (max-width:1024px){
    .footer-top{grid-template-columns:1fr;}
  }