:root{
  --bg:#0f0e0c;
  --bg2:#171411;
  --paper:#e7dcc7;
  --paper2:#d6c6aa;
  --gold:#c8a56a;
  --gold2:#e1c485;
  --text:#efe6d5;
  --ink:#181512;
  --muted:#8d7f6a;
  --line:rgba(255,255,255,.09);
  --line-dark:rgba(24,21,18,.18);
  --shadow:0 34px 90px rgba(0,0,0,.45);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Georgia,'Times New Roman',serif;
  overflow-x:hidden;
  line-height:1.65;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:50;
  pointer-events:none;
  background:
    radial-gradient(circle at 20% 0,rgba(255,255,255,.06),transparent 25%),
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:100% 100%,100% 4px;
  mix-blend-mode:overlay;
  opacity:.42;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.site-header{
  min-height:100vh;
  background:
    linear-gradient(90deg,rgba(8,8,7,.94),rgba(8,8,7,.58),rgba(8,8,7,.28)),
    url('assets/jerusalen-fondo.jpg') center/cover;
  position:relative;
}

.nav{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:0 5vw;
  background:rgba(10,10,9,.78);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:80;
  backdrop-filter:blur(10px);
}

.brand{
  display:flex;
  flex-direction:column;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.brand strong{
  color:var(--gold2);
  font-size:22px;
  line-height:1;
}

.brand span{
  color:#bfae91;
  font-size:11px;
  margin-top:5px;
  font-family:Arial,sans-serif;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:24px;
  font-family:Arial,sans-serif;
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.nav-links a{
  color:#d9cfbb;
  position:relative;
}

.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-9px;
  width:0;
  height:1px;
  background:var(--gold);
  transition:.25s;
}

.nav-links a:hover::after{width:100%}

.home-link{
  border:1px solid rgba(200,165,106,.35);
  padding:10px 14px;
}

.menu-toggle{
  display:none;
  background:none;
  border:0;
  color:var(--text);
  font-size:28px;
}

.hero{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:6vw;
  align-items:center;
  min-height:calc(100vh - 82px);
  padding:7vw 5vw;
}

.eyebrow{
  margin:0 0 18px;
  font-family:Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:12px;
  color:var(--gold2);
}

.hero h1{
  font-size:clamp(44px,6.8vw,104px);
  line-height:.98;
  letter-spacing:.01em;
  margin:0 0 28px;
  font-weight:400;
}

.lead{
  max-width:720px;
  color:#d8ccb7;
  font-size:clamp(18px,2vw,25px);
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:36px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:14px 24px;
  border:1px solid rgba(255,255,255,.22);
  font-family:Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
  transition:.25s;
}

.btn-primary{
  background:var(--gold);
  border-color:var(--gold);
  color:#111;
}

.btn-primary:hover{
  background:#e3c985;
  transform:translateY(-2px);
}

.btn-ghost{color:var(--text)}

.btn-ghost:hover{
  background:rgba(255,255,255,.08);
  transform:translateY(-2px);
}

.hero-cover{
  justify-self:center;
  position:relative;
}

.hero-cover::after{
  content:"RIGOR HISTÓRICO · SIN FILTROS";
  position:absolute;
  right:-38px;
  bottom:42px;
  width:128px;
  height:128px;
  border-radius:50%;
  background:rgba(28,24,19,.92);
  border:1px solid rgba(200,165,106,.55);
  color:var(--gold2);
  display:grid;
  place-items:center;
  text-align:center;
  font-family:Arial,sans-serif;
  font-size:11px;
  letter-spacing:.1em;
  padding:18px;
}

.hero-cover img{
  max-height:72vh;
  box-shadow:var(--shadow);
  border:10px solid rgba(255,255,255,.05);
}

.intro-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:#0b0b0a;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.intro-strip article{
  padding:34px 5vw 34px 34px;
  border-right:1px solid rgba(255,255,255,.07);
}

.intro-strip span{
  color:var(--gold);
  font-family:Arial,sans-serif;
  font-size:12px;
  letter-spacing:.14em;
}

.intro-strip h3{
  margin:10px 0 8px;
  color:var(--gold2);
  font-size:20px;
}

.intro-strip p{
  margin:0;
  color:#c8baa3;
  font-size:15px;
}

.section{
  padding:100px 5vw;
  background:var(--paper);
  color:var(--ink);
  position:relative;
}

.section:nth-of-type(even){background:#ded0b8}

.dark-section{
  background:linear-gradient(180deg,#11100f,#191612);
  color:var(--text);
}

.section-heading{
  max-width:980px;
  margin:0 auto 54px;
  text-align:center;
}

.section-heading p{
  margin:0 0 12px;
  font-family:Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:12px;
  color:#8b6b3e;
}

.section-heading h2{
  font-size:clamp(36px,5vw,76px);
  line-height:1.02;
  margin:0;
  font-weight:400;
  letter-spacing:-.02em;
}

.section-heading.light h2{color:var(--text)}
.section-heading.light p{color:var(--gold2)}

.book-grid,
.maps-grid,
.buy-grid{
  max-width:1220px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:42px;
  align-items:center;
}

.text-panel,
.image-card,
.focus-box{
  background:rgba(255,255,255,.38);
  border:1px solid var(--line-dark);
  padding:36px;
  box-shadow:0 18px 60px rgba(24,21,18,.12);
}

.text-panel p{
  font-size:20px;
  margin:0 0 20px;
}

blockquote{
  font-size:26px;
  line-height:1.25;
  margin:30px 0 0;
  padding-left:22px;
  border-left:4px solid var(--gold);
  color:#2b241d;
}

.image-card{
  padding:14px;
  background:#efe4d1;
}

.image-card img{
  width:100%;
  height:auto;
  filter:saturate(.92) contrast(.96);
}

figcaption{
  font-family:Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  color:var(--muted);
  padding:12px 4px 0;
}

.timeline-section{
  background:linear-gradient(180deg,#13110f,#0d0c0b);
  color:var(--text);
  overflow:hidden;
}

.timeline{
  max-width:1080px;
  margin:0 auto;
  position:relative;
  display:grid;
  gap:28px;
}

.timeline::before{
  content:"";
  position:absolute;
  left:18px;
  top:0;
  bottom:0;
  width:2px;
  background:linear-gradient(to bottom,transparent,var(--gold),transparent);
}

.timeline-item{
  position:relative;
  padding:0 0 0 58px;
}

.timeline-item::before{
  content:"";
  position:absolute;
  left:9px;
  top:8px;
  width:18px;
  height:18px;
  background:var(--gold);
  transform:rotate(45deg);
  box-shadow:0 0 25px rgba(200,165,106,.35);
}

.timeline-toggle{
  width:100%;
  text-align:left;
  background:none;
  border:0;
  color:inherit;
  font:inherit;
  padding:0;
  cursor:pointer;
}

.timeline-date{
  display:inline-block;
  color:var(--gold2);
  font-family:Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:12px;
  margin-bottom:8px;
}

.timeline-title{
  display:block;
  margin:10px 0;
  font-size:clamp(26px,3vw,40px);
  font-weight:400;
  line-height:1.15;
}

.timeline-summary{
  display:block;
  color:#c5b9a5;
  line-height:1.7;
  font-size:18px;
  max-width:920px;
}

.timeline-more{
  display:inline-block;
  margin-top:18px;
  color:var(--gold);
  font-family:Arial,sans-serif;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.14em;
}

.timeline-details{
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height .6s ease, opacity .4s ease, margin-top .4s ease;
}

.timeline-item.open .timeline-details{
  max-height:1200px;
  opacity:1;
  margin-top:28px;
}

.chapter-list{
  border:1px solid rgba(200,165,106,.25);
  background:rgba(255,255,255,.04);
  padding:26px;
  margin-bottom:24px;
}

.chapter-list h4{
  margin:0 0 18px;
  color:var(--gold);
  font-size:1.2rem;
}

.chapter-list ul{
  margin:0;
  padding-left:20px;
}

.chapter-list li{
  margin-bottom:10px;
  color:#ded2bd;
}

.timeline-images{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.timeline-images figure{
  margin:0;
  background:#0b0b0a;
  border:1px solid rgba(200,165,106,.22);
  padding:10px;
}

.timeline-images img{
  width:100%;
  height:190px;
  object-fit:cover;
}

.timeline-images figcaption{
  padding-top:10px;
  color:#b9aa91;
  font-size:.8rem;
}

.topics-grid{
  max-width:1240px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.topic-card{
  background:#0c0c0b;
  border:1px solid rgba(200,165,106,.22);
  overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,.25);
}

.topic-card img{
  width:100%;
  height:310px;
  object-fit:cover;
  filter:saturate(.82) contrast(1.02);
}

.topic-card div{
  padding:24px;
}

.topic-card h3{
  margin:0 0 10px;
  color:var(--gold2);
  font-size:27px;
  font-weight:400;
}

.topic-card p{
  margin:0;
  color:#cdbfa8;
}

.focus-section{
  position:relative;
  background:#080808 !important;
  color:#f4ead7 !important;
  overflow:hidden;
}

.focus-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.94)),
    url("assets/jerusalen-fondo.jpg") center/cover no-repeat;
  opacity:.55;
  filter:grayscale(.2) contrast(1.15) brightness(.48);
  transform:scale(1.03);
}

.focus-box{
  position:relative;
  z-index:2;
  max-width:1000px;
  margin:0 auto;
  background:rgba(8,8,8,.86) !important;
  border:1px solid rgba(200,165,106,.32) !important;
  padding:60px;
  box-shadow:0 30px 100px rgba(0,0,0,.68);
}

.focus-box .eyebrow{
  color:var(--gold2) !important;
}

.focus-box h2{
  color:#fff6e8 !important;
  font-size:clamp(40px,5vw,72px);
  line-height:1.02;
  margin:0 0 24px;
  font-weight:400;
  text-shadow:0 4px 30px rgba(0,0,0,.9);
}

.focus-box p:not(.eyebrow){
  color:#ddd0ba !important;
  font-size:21px;
  line-height:1.9;
  text-shadow:0 2px 10px rgba(0,0,0,.7);
}

.buy-section{
  background:
    linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.58)),
    url('assets/jerusalen-fondo.jpg') center/cover fixed;
  color:var(--text);
}

.buy-grid{
  grid-template-columns:1.1fr .7fr;
}

.buy-grid h2{
  font-size:clamp(38px,5vw,74px);
  line-height:1.02;
  font-weight:400;
  margin:0 0 24px;
}

.buy-grid p{
  font-size:21px;
  color:#d4c7b1;
  max-width:780px;
}

.buy-cover{
  max-height:620px;
  justify-self:center;
  box-shadow:var(--shadow);
  border:10px solid rgba(255,255,255,.06);
}

.footer{
  background:#080807;
  color:#a99b84;
  text-align:center;
  padding:36px 5vw;
  font-family:Arial,sans-serif;
  font-size:13px;
}

.footer a{
  text-decoration:underline;
  text-underline-offset:4px;
  color:#d8ccb7;
}

.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s ease,transform .7s ease;
}

.reveal.visible{
  opacity:1;
  transform:translateY(0);
}

.delay-1{transition-delay:.12s}
.delay-2{transition-delay:.22s}
.delay-3{transition-delay:.32s}

@media(max-width:1050px){
  .nav-links{
    gap:14px;
    font-size:11px;
  }

  .brand strong{
    font-size:18px;
  }

  .hero{
    grid-template-columns:1fr;
    min-height:auto;
  }

  .hero-cover{
    order:-1;
    margin-top:34px;
  }

  .hero-cover img{
    max-height:56vh;
  }

  .intro-strip{
    grid-template-columns:1fr 1fr;
  }

  .book-grid,
  .maps-grid,
  .buy-grid{
    grid-template-columns:1fr;
  }

  .topics-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:800px){
  .timeline-images{
    grid-template-columns:1fr;
  }

  .timeline-images img{
    height:230px;
  }
}

@media(max-width:760px){
  .nav{
    min-height:72px;
  }

  .menu-toggle{
    display:block;
  }

  .nav-links{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:#0b0b0a;
    display:none;
    flex-direction:column;
    align-items:flex-start;
    padding:18px 5vw;
    border-top:1px solid var(--line);
  }

  .nav-links.open{
    display:flex;
  }

  .hero{
    padding:12vw 5vw;
  }

  .hero h1{
    font-size:46px;
  }

  .hero-actions{
    flex-direction:column;
  }

  .btn{
    width:100%;
  }

  .intro-strip,
  .topics-grid{
    grid-template-columns:1fr;
  }

  .section{
    padding:74px 5vw;
  }

  .text-panel,
  .focus-box{
    padding:26px;
  }

  .text-panel p,
  .focus-box p:not(.eyebrow),
  .buy-grid p{
    font-size:18px;
  }

  .hero-cover::after{
    right:0;
    bottom:18px;
    width:105px;
    height:105px;
    font-size:9px;
  }
}