@charset "utf-8";
:root{
  --ink:#181614;--muted:#746d66;--paper:#fbfaf6;--line:#ded6cb;--red:#b72a2d;--cream:#f5efe5;
  --mincho:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","Noto Serif JP",serif;
  --gothic:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--gothic)}
img{display:block;width:100%}
a{text-decoration:none;color:inherit}
.page-width,.wrap{width:min(1190px,calc(100% - 64px));margin:auto}

/* common header/footer */
.site-header{height:62px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.header-inner{width:min(1120px,calc(100% - 56px));height:100%;margin:auto;display:flex;align-items:center;gap:16px}
.brand{font:700 24px Georgia,serif}.brand-sub{font-size:10px;color:#6e665c}.site-header nav{margin-left:auto;display:flex;gap:22px}.site-header nav a{font-size:11px}
.site-footer{background:#171b19;color:#eee9df;padding:34px 0;margin-top:52px}.site-footer .wrap{display:flex;gap:20px;align-items:baseline}.site-footer b{font:700 22px Georgia,serif}.site-footer span{font-size:11px}

/* hero */
.hero{height:420px;position:relative;overflow:hidden;background:#e6f0f6}
.hero-photo{position:absolute;inset:0;background:url('https://are-iina.com/assets/are-iina_Top_HERO.jpg') center/cover no-repeat}
.hero-fade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.96) 23%,rgba(255,255,255,.72) 43%,rgba(255,255,255,.22) 66%,rgba(255,255,255,0) 82%)}
.hero-inner{position:relative;height:100%}.hero-copy{padding-top:88px;width:650px}
.hero-title{font:600 54px/1.2 var(--mincho);letter-spacing:.01em}.hero-title span{color:var(--red)}
.hero-sub{font:600 24px/1.45 var(--mincho);margin:16px 0 12px}.hero-note{font:500 14px/1.8 var(--mincho);margin:0}

/* feature */
.feature-section{margin-top:34px}.feature-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px;align-items:stretch}
.feature-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.feature-img{height:255px;position:relative;overflow:hidden}.feature-main .feature-img{height:318px}.feature-img img{height:100%;object-fit:cover}
.feature-img span{position:absolute;top:14px;left:14px;background:rgba(24,21,19,.88);color:#fff;padding:8px 16px;font:600 13px/1 var(--mincho);letter-spacing:.08em}
.feature-copy{padding:19px 20px 22px;flex:1}.feature-main .feature-copy{padding:23px 26px 26px}
.feature-copy h2,.feature-copy h3{font-family:var(--mincho);margin:0 0 9px;line-height:1.35}.feature-copy h2{font-size:34px}.feature-copy h3{font-size:20px}.feature-copy p{font:500 11px/1.7 var(--mincho);color:#554e47;margin:0}.feature-copy .feature-lead{font-size:16px;color:#25211e;margin-bottom:9px}

/* intro */
.site-intro{margin-top:30px;padding:19px 4px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.site-intro h1{font:600 22px/1.5 var(--mincho);margin:0 0 6px}.site-intro p{font:500 12px/1.8 var(--mincho);margin:0;color:#5f5851}

/* shelf common */
.shelf{margin-top:30px}.shelf-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:14px}.shelf-head>div{display:flex;align-items:baseline;gap:14px}
.shelf-head h2,.dark-head h2,.region-head h2{font:600 27px/1.3 var(--mincho);margin:0}.shelf-head p,.dark-head p,.region-head p{font:500 10px/1.5 var(--mincho);color:#756e67;margin:0}

/* movie */
.movie-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.movie-card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.movie-card img{aspect-ratio:16/9;object-fit:cover}.movie-card div{padding:13px 14px 15px}.movie-card h3{font:600 17px/1.45 var(--mincho);margin:0 0 5px}.movie-card p{font:500 10px/1.6 var(--mincho);color:#5b544d;margin:0}

/* split shelves */
.split-shelves{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:32px}.split-shelves .shelf{margin-top:0}
.mini-grid{display:grid;gap:12px}.mini-grid-3{grid-template-columns:repeat(3,1fr)}.mini-card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.mini-card img{aspect-ratio:1.32/1;object-fit:cover}.mini-card div{padding:10px 11px 13px;display:flex;flex-direction:column;flex:1}.mini-card h3{font:600 15px var(--mincho);margin:0 0 5px}.mini-card p{font:500 9px/1.6 var(--mincho);color:#625b54;margin:auto 0 0}
.portrait-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.portrait-card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;padding-bottom:11px}.portrait-card img{aspect-ratio:1/1;object-fit:cover}.portrait-card h3{font:600 14px/1.4 var(--mincho);margin:9px 9px 4px}.portrait-card p{font:500 8.8px/1.55 var(--mincho);color:#625b54;margin:0 9px}

/* dark band */
.dark-band{margin-top:38px;background:#22201f;color:#f6f2ec;padding:30px 0 32px}.dark-head{display:flex;align-items:baseline;gap:14px;margin-bottom:15px}.dark-head p{color:#bfb8af}
.dark-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:11px}.dark-grid a{background:#2d2a28;border:1px solid #45403c;border-radius:8px;overflow:hidden}.dark-grid img{aspect-ratio:1.35/1;object-fit:cover}.dark-grid h3{font:600 15px var(--mincho);margin:10px 11px 4px}.dark-grid p{font:500 9px/1.6 var(--mincho);color:#cfc7be;margin:0 11px 12px}

/* locations */
.location-section{margin-top:34px}.location-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.location-grid a{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;display:grid;grid-template-columns:44% 56%;min-height:170px}.location-grid img{height:100%;object-fit:cover}.location-grid div{padding:16px}.location-grid span{font:700 9px var(--gothic);letter-spacing:.08em;color:#9a6d42}.location-grid h3{font:600 18px var(--mincho);margin:5px 0 7px}.location-grid p{font:500 10px/1.65 var(--mincho);color:#5e5750;margin:0}

/* regions */
.region-band{margin-top:40px;padding:31px 0 36px;background:#f0ebe2}.region-head{display:flex;align-items:baseline;gap:14px;margin-bottom:15px}.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.region-card{height:285px;position:relative;border-radius:10px;overflow:hidden}.region-card img{height:100%;object-fit:cover}.region-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,8,8,.72),rgba(8,8,8,0) 62%)}.region-copy{position:absolute;left:22px;right:22px;bottom:20px;color:#fff}.region-copy span{font-size:9px;letter-spacing:.14em}.region-copy h3{font:600 28px var(--mincho);margin:3px 0 5px}.region-copy p{font:500 10px/1.6 var(--mincho);margin:0;color:#eee}

/* popular */
.popular-section{margin-top:34px}.popular-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.popular-list li{background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px;display:grid;grid-template-columns:26px 58px 1fr;gap:7px;align-items:center;min-height:62px}.popular-list b{width:24px;height:24px;border-radius:4px;background:#b5ada5;color:#fff;display:grid;place-items:center;font:700 14px Georgia,serif}.popular-list li:first-child b{background:#d7a03b}.popular-list img{width:58px;height:46px;object-fit:cover;border-radius:3px}.popular-list a{font:600 9px/1.5 var(--mincho)}

/* zukan */
.encyclopedia{margin-top:38px}.zukan-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:11px}.zukan-grid a{min-height:112px;border:1px solid #d9cfc2;border-radius:8px;background:linear-gradient(145deg,#f8f3ea,#eee5d8);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.zukan-grid strong{font:600 17px var(--mincho)}.zukan-grid span{font:700 8px/1.2 var(--gothic);letter-spacing:.1em;color:#9b8e7f;margin-top:7px}

@media(max-width:1000px){
  .feature-grid{grid-template-columns:1fr 1fr}.feature-main{grid-column:1/-1}.split-shelves{grid-template-columns:1fr}.dark-grid{grid-template-columns:repeat(3,1fr)}.popular-list{grid-template-columns:1fr 1fr}.zukan-grid{grid-template-columns:repeat(5,1fr)}
}
@media(max-width:700px){
  .page-width,.wrap,.header-inner{width:calc(100% - 28px)}.site-header{height:54px}.brand-sub{display:none}.site-header nav{gap:10px}.site-header nav a{font-size:9px}
  .hero{height:430px}.hero-photo{background-position:70% top}.hero-fade{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.96) 62%)}.hero-copy{padding-top:230px;width:100%}.hero-title{font-size:36px}.hero-sub{font-size:19px}.hero-note{font-size:12px}
  .feature-grid{grid-template-columns:1fr}.feature-main{grid-column:auto}.feature-main .feature-img,.feature-img{height:230px}.feature-copy h2{font-size:28px}
  .site-intro h1{font-size:19px}.shelf-head>div,.dark-head,.region-head{display:block}.shelf-head p,.dark-head p,.region-head p{margin-top:4px}
  .movie-grid{grid-template-columns:1fr}.mini-grid-3{grid-template-columns:1fr 1fr}.portrait-grid{grid-template-columns:1fr 1fr}.dark-grid{grid-template-columns:1fr 1fr}.location-grid{grid-template-columns:1fr}.region-grid{grid-template-columns:1fr}.popular-list{grid-template-columns:1fr}.zukan-grid{grid-template-columns:repeat(3,1fr)}
  .site-footer .wrap{display:block}.site-footer span{display:block;margin-top:5px}
}


/* ===== V0.7 editorial / readability refinement ===== */

/* Feature section pressure reduction */
.feature-section{margin-top:30px}
.section-editorial{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:24px;
  align-items:end;
  margin-bottom:16px;
  padding:0 2px;
}
.section-editorial .kicker{
  display:block;
  font:700 9px var(--gothic);
  letter-spacing:.14em;
  color:#9b8d7d;
  margin-bottom:5px;
}
.section-editorial h2{
  font:600 25px/1.3 var(--mincho);
  margin:0;
  white-space:nowrap;
}
.section-editorial>p{
  font:500 11px/1.75 var(--mincho);
  color:#5e5750;
  margin:0;
  max-width:650px;
}
.feature-main .feature-img{height:258px}
.feature-img{height:215px}
.feature-main .feature-copy{padding:18px 22px 20px}
.feature-copy{padding:16px 17px 18px}
.feature-copy h2{font-size:30px}
.feature-copy h3{font-size:18px}
.feature-copy .feature-lead{font-size:14px}
.more-link{
  font:700 10px var(--mincho);
  white-space:nowrap;
  color:#4d4741;
  border-bottom:1px solid #aaa095;
  padding-bottom:3px;
}

/* SEO intro: more content but visually compact */
.site-intro{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:34px;
  align-items:start;
  margin-top:28px;
  padding:20px 4px 21px;
}
.site-intro h1{font-size:21px}
.intro-note{
  border-left:1px solid var(--line);
  padding-left:24px;
}
.intro-note strong{
  display:block;
  font:600 12px var(--mincho);
  margin-bottom:5px;
}
.intro-note p{
  font:500 10px/1.75 var(--mincho);
  color:#665e57;
  margin:0;
}

/* Shelf titles and editorial text */
.shelf-head{
  display:block;
  margin-bottom:14px;
}
.shelf-title-row,
.dark-title-row{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:18px;
}
.shelf-title-row>div{
  display:flex;
  gap:14px;
  align-items:baseline;
}
.editorial-copy{
  margin:8px 0 0;
  max-width:860px;
  font:500 10.5px/1.75 var(--mincho);
  color:#645d56;
}
.dark-title-row>div{
  display:flex;
  gap:14px;
  align-items:baseline;
}
.dark-more{
  color:#eee6dc;
  border-color:#8b8177;
}
.dark-copy{
  color:#cfc6bc;
}
.dark-head{
  display:block;
}

/* Region header */
.region-head{
  display:block;
  margin-bottom:15px;
}
.region-head>div{
  display:flex;
  gap:14px;
  align-items:baseline;
}

/* Slightly more air without becoming sparse */
.movie-grid,
.mini-grid,
.portrait-grid,
.dark-grid,
.location-grid,
.region-grid{
  margin-top:2px;
}
.split-shelves{margin-top:36px}
.dark-band{margin-top:42px}
.location-section{margin-top:38px}
.region-band{margin-top:44px}
.popular-section{margin-top:38px}
.encyclopedia{margin-top:42px}

/* Cards: equal height by row */
.movie-grid,.mini-grid,.portrait-grid,.dark-grid,.location-grid{
  align-items:stretch;
}
.movie-card,.mini-card,.portrait-card,.dark-grid a,.location-grid a{
  height:100%;
}

/* Popular header now can be longer */
.popular-section .shelf-head{margin-bottom:15px}

@media(max-width:1000px){
  .section-editorial{
    grid-template-columns:1fr auto;
  }
  .section-editorial>p{
    grid-column:1/-1;
  }
  .site-intro{
    grid-template-columns:1fr;
    gap:16px;
  }
  .intro-note{
    border-left:0;
    border-top:1px solid var(--line);
    padding:14px 0 0;
  }
}
@media(max-width:700px){
  .section-editorial{
    display:block;
  }
  .section-editorial>p{
    margin-top:8px;
  }
  .section-editorial .more-link{
    display:inline-block;
    margin-top:10px;
  }
  .feature-main .feature-img,.feature-img{height:210px}
  .shelf-title-row,
  .dark-title-row{
    align-items:flex-start;
  }
  .shelf-title-row>div,
  .dark-title-row>div,
  .region-head>div{
    display:block;
  }
  .editorial-copy{
    font-size:10px;
  }
}


/* ===== V0.8 spacious editorial redesign ===== */

/* Global rhythm */
.page-width,.wrap{width:min(1240px,calc(100% - 72px))}
.feature-section{margin-top:48px}
.site-intro{margin-top:44px;margin-bottom:52px}
.shelf{margin-top:56px}
.split-shelves{margin-top:64px;gap:42px}
.dark-band{margin-top:70px;padding:46px 0 50px}
.location-section{margin-top:66px}
.region-band{margin-top:72px;padding:46px 0 52px}
.popular-section{margin-top:66px}
.encyclopedia{margin-top:72px}
.site-footer{margin-top:72px}

/* Header spacing */
.shelf-head{margin-bottom:22px}
.shelf-title-row{gap:24px}
.shelf-head h2,.dark-head h2,.region-head h2{font-size:30px}
.shelf-head p,.dark-head p,.region-head p{font-size:12px}
.editorial-copy{font-size:12.5px;line-height:1.9;max-width:940px;margin-top:12px}
.more-link{font-size:11px}

/* Hero */
.hero{height:455px}
.hero-copy{padding-top:96px;width:690px}
.hero-title{font-size:58px}
.hero-sub{font-size:26px}
.hero-note{font-size:15px;line-height:1.95}

/* Feature block: less pressure */
.section-editorial{margin-bottom:22px;gap:30px}
.section-editorial h2{font-size:28px}
.section-editorial>p{font-size:12.5px;line-height:1.9}
.feature-grid{gap:22px}
.feature-main .feature-img{height:245px}
.feature-img{height:245px}
.feature-main .feature-copy{padding:22px 25px 24px}
.feature-copy{padding:20px 20px 22px}
.feature-copy h2{font-size:31px}
.feature-copy h3{font-size:20px}
.feature-copy p{font-size:12px;line-height:1.8}
.feature-copy .feature-lead{font-size:15px;line-height:1.75}

/* SEO intro */
.site-intro{
  grid-template-columns:1.35fr .65fr;
  gap:44px;
  padding:26px 4px 28px;
}
.site-intro h1{font-size:24px;line-height:1.65}
.site-intro p{font-size:13px;line-height:1.95}
.intro-note{padding-left:30px}
.intro-note strong{font-size:13px}
.intro-note p{font-size:11.5px;line-height:1.9}

/* Movie cards */
.movie-grid{gap:22px}
.movie-card img{aspect-ratio:16/9}
.movie-card div{padding:18px 18px 20px}
.movie-card h3{font-size:18px;line-height:1.5}
.movie-card p{font-size:11.5px;line-height:1.8}

/* Place cards */
.mini-grid{gap:18px}
.mini-card img{aspect-ratio:1.35/1}
.mini-card div{padding:15px 15px 17px}
.mini-card h3{font-size:16px}
.mini-card p{font-size:10.5px;line-height:1.75}

/* Portraits */
.portrait-grid{gap:14px}
.portrait-card{padding-bottom:14px}
.portrait-card h3{font-size:15px;margin:11px 11px 5px}
.portrait-card p{font-size:9.8px;line-height:1.65;margin:0 11px}

/* Dark band: 4-column editorial grid */
.dark-grid{grid-template-columns:repeat(4,1fr);gap:16px}
.dark-grid a:nth-child(1){grid-column:span 2}
.dark-grid a:nth-child(1) img{aspect-ratio:2.1/1}
.dark-grid a:nth-child(1) h3{font-size:20px}
.dark-grid a:nth-child(1) p{font-size:11px}
.dark-grid img{aspect-ratio:1.45/1}
.dark-grid h3{font-size:16px;margin:12px 13px 5px}
.dark-grid p{font-size:10px;line-height:1.7;margin:0 13px 14px}
.dark-copy{font-size:12px;line-height:1.9}

/* Locations */
.location-grid{gap:20px}
.location-grid a{min-height:205px;grid-template-columns:46% 54%}
.location-grid div{padding:20px}
.location-grid span{font-size:10px}
.location-grid h3{font-size:20px}
.location-grid p{font-size:11px;line-height:1.75}

/* Regions: horizontal scroll ready for 47 prefectures */
.region-grid{
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding-bottom:8px;
}
.region-card{
  flex:0 0 min(520px,80vw);
  height:300px;
  scroll-snap-align:start;
}
.region-copy h3{font-size:30px}
.region-copy p{font-size:11px;line-height:1.7}

/* Popular becomes vertical, less compressed */
.popular-list{
  grid-template-columns:1fr;
  gap:12px;
}
.popular-list li{
  min-height:78px;
  grid-template-columns:34px 88px 1fr;
  padding:10px 12px;
}
.popular-list b{width:28px;height:28px;font-size:15px}
.popular-list img{width:88px;height:58px}
.popular-list a{font-size:12px;line-height:1.65}

/* Zukan: roomier, book-like blocks */
.zukan-grid{
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.zukan-grid a{
  min-height:150px;
  padding:24px 18px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,#faf6ee,#ece2d4);
}
.zukan-grid a::before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(120,104,86,.16);
  border-radius:6px;
  pointer-events:none;
}
.zukan-grid strong{
  position:relative;
  font-size:22px;
}
.zukan-grid span{
  position:relative;
  font-size:9px;
  margin-top:9px;
}

/* Section breathing on split */
.split-shelves .shelf-head{min-height:118px}

/* Responsive */
@media(max-width:1000px){
  .page-width,.wrap{width:min(94%,1180px)}
  .dark-grid{grid-template-columns:repeat(2,1fr)}
  .dark-grid a:nth-child(1){grid-column:span 2}
  .zukan-grid{grid-template-columns:repeat(3,1fr)}
  .site-intro{grid-template-columns:1fr}
}
@media(max-width:700px){
  .page-width,.wrap,.header-inner{width:calc(100% - 28px)}
  .hero{height:450px}
  .hero-copy{padding-top:238px}
  .hero-title{font-size:38px}
  .hero-sub{font-size:20px}
  .hero-note{font-size:12.5px}
  .feature-section{margin-top:30px}
  .site-intro{margin-top:34px;margin-bottom:40px}
  .shelf{margin-top:42px}
  .split-shelves{margin-top:48px;gap:42px}
  .dark-band{margin-top:52px;padding:36px 0 40px}
  .location-section{margin-top:48px}
  .region-band{margin-top:52px;padding:36px 0 40px}
  .popular-section{margin-top:48px}
  .encyclopedia{margin-top:52px}
  .feature-grid{gap:18px}
  .feature-main .feature-img,.feature-img{height:220px}
  .movie-grid{gap:18px}
  .mini-grid-3{grid-template-columns:1fr}
  .portrait-grid{grid-template-columns:repeat(2,1fr)}
  .dark-grid{grid-template-columns:1fr}
  .dark-grid a:nth-child(1){grid-column:auto}
  .dark-grid a:nth-child(1) img{aspect-ratio:1.45/1}
  .location-grid{grid-template-columns:1fr}
  .region-card{flex-basis:86vw}
  .zukan-grid{grid-template-columns:1fr}
  .split-shelves .shelf-head{min-height:0}
}


/* ===== V0.9 editorial-media refinement ===== */

/* Type scale: no unreadably small text */
body{font-size:15px}
.shelf-head p,
.dark-head p,
.region-head p{font-size:13px}
.editorial-copy{font-size:13px;line-height:1.9}
.more-link{font-size:13px}
.feature-copy p{font-size:13px}
.feature-copy .feature-lead{font-size:16px}
.movie-card p{font-size:13px}
.mini-card p{font-size:12px}
.portrait-card p{font-size:11.5px}
.dark-grid p{font-size:12px}
.location-grid p{font-size:12px}
.region-copy p{font-size:12px}
.popular-list a{font-size:13px}
.site-intro p{font-size:14px}
.intro-note p{font-size:12.5px}

/* Vertical rhythm: three-level spacing system */
.feature-section{margin-top:42px}
.site-intro{margin-top:38px;margin-bottom:56px}
.shelf{margin-top:56px}
.editor-pick{margin-top:72px}
.split-shelves{margin-top:64px}
.dark-band{margin-top:72px}
.location-section{margin-top:64px}
.region-band{margin-top:72px}
.popular-section{margin-top:64px}
.encyclopedia{margin-top:72px}

/* Keep section titles clearly distinct */
.shelf-head h2,.dark-head h2,.region-head h2{font-size:31px}
.shelf-head{margin-bottom:20px}
.section-editorial h2{font-size:29px}

/* Feature tiles: unified image heights, less pressure */
.feature-main .feature-img,
.feature-img{height:230px}
.feature-grid{gap:20px}
.feature-main .feature-copy,
.feature-copy{padding:20px 22px 22px}
.feature-copy h2{font-size:30px}
.feature-copy h3{font-size:19px}

/* Editor's Pick: true magazine-style break from grids */
.editor-pick{
  padding-top:4px;
}
.editor-pick-label{
  font:700 11px var(--gothic);
  letter-spacing:.16em;
  color:#9b8d7f;
  margin-bottom:12px;
}
.editor-pick-grid{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(250px,.7fr);
  gap:20px;
}
.editor-pick-main{
  display:grid;
  grid-template-columns:48% 52%;
  min-height:360px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
}
.editor-pick-image img{
  height:100%;
  object-fit:cover;
}
.editor-pick-copy{
  padding:34px 36px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.editor-kicker,
.side-kicker{
  font:700 11px var(--gothic);
  letter-spacing:.08em;
  color:#9a6d42;
}
.editor-pick-copy h2{
  font:600 28px/1.5 var(--mincho);
  margin:10px 0 14px;
}
.editor-pick-copy p{
  font:500 14px/1.9 var(--mincho);
  color:#554e47;
  margin:0;
}
.editor-pick-cta{
  font:700 13px var(--mincho);
  margin-top:20px;
}
.editor-pick-side{
  display:grid;
  gap:14px;
}
.editor-pick-side a{
  background:#f5efe6;
  border:1px solid var(--line);
  border-radius:9px;
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.editor-pick-side strong{
  font:600 20px var(--mincho);
  margin:8px 0 7px;
}
.editor-pick-side p{
  font:500 12.5px/1.8 var(--mincho);
  color:#5f5851;
  margin:0;
}

/* Dark section: reduce dominance */
.dark-band{
  padding:36px 0 38px;
}
.dark-grid{
  grid-template-columns:1.35fr repeat(3,1fr);
  gap:14px;
}
.dark-grid a:nth-child(1){
  grid-column:auto;
}
.dark-grid a:nth-child(1) img,
.dark-grid img{
  aspect-ratio:1.55/1;
}
.dark-grid a:nth-child(1) h3,
.dark-grid h3{
  font-size:17px;
}
.dark-grid a:nth-child(1) p,
.dark-grid p{
  font-size:12px;
}

/* Location cards: less oversized */
.location-grid a{
  min-height:185px;
}

/* Regions: 47-prefecture scalable rail */
.region-card{
  flex:0 0 min(430px,72vw);
  height:265px;
}

/* Popular: compact but readable, not five giant white bars */
.popular-list{
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.popular-list li{
  min-height:76px;
}

/* Zukan bookshelf */
.zukan-grid{
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.zukan-grid a{
  min-height:178px;
  padding:26px 20px;
  background:
    linear-gradient(90deg,rgba(110,89,63,.08) 0 5px,transparent 5px),
    linear-gradient(145deg,#faf6ee,#ece1d2);
  box-shadow:0 5px 14px rgba(75,58,39,.05);
}
.zukan-grid a::before{
  inset:12px;
  border-color:rgba(120,104,86,.20);
}
.zukan-mark{
  position:relative;
  width:34px;
  height:34px;
  border:1px solid #b8a894;
  border-radius:50%;
  margin-bottom:13px;
}
.zukan-mark::before,
.zukan-mark::after{
  content:"";
  position:absolute;
  background:#b8a894;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}
.zukan-mark::before{width:16px;height:1px}
.zukan-mark::after{width:1px;height:16px}
.zukan-grid strong{font-size:23px}
.zukan-grid span{font-size:10px}
.zukan-grid small{
  position:relative;
  margin-top:8px;
  font:500 11px var(--mincho);
  color:#766b5f;
}

/* Prevent awkward overlarge gaps caused by equalized header heights */
.split-shelves .shelf-head{min-height:0}

/* Header/footer are placeholders for development swap */
.site-header,.site-footer{}

/* Responsive */
@media(max-width:1000px){
  .editor-pick-grid{grid-template-columns:1fr}
  .editor-pick-side{grid-template-columns:1fr 1fr}
  .dark-grid{grid-template-columns:1fr 1fr}
  .popular-list{grid-template-columns:1fr}
}
@media(max-width:700px){
  body{font-size:14px}
  .editorial-copy{font-size:12.5px}
  .editor-pick{margin-top:50px}
  .editor-pick-main{grid-template-columns:1fr}
  .editor-pick-image{height:230px}
  .editor-pick-copy{padding:24px 22px}
  .editor-pick-copy h2{font-size:22px}
  .editor-pick-side{grid-template-columns:1fr}
  .dark-grid{grid-template-columns:1fr}
  .zukan-grid{grid-template-columns:1fr}
}


/* ===== V0.10 final alignment fix ===== */

/* Align paired shelf headings and card starts */
.split-shelves{
  align-items:start;
}

.split-shelves .shelf{
  display:flex;
  flex-direction:column;
}

.split-shelves .shelf-head{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:92px;
  margin-bottom:18px;
}

.split-shelves .shelf-title-row{
  display:block;
}

.split-shelves .shelf-title-row > div{
  display:block;
}

.split-shelves .shelf-head h2{
  font-size:29px;
  line-height:1.35;
  margin:0 0 8px;
}

.split-shelves .shelf-head p{
  font-size:12px;
  line-height:1.6;
  margin:0;
}

/* Keep both card rows starting at exactly the same vertical position */
.split-shelves .mini-grid,
.split-shelves .portrait-grid{
  margin-top:0;
}

/* Fine-tune desktop only so the left title remains one line where possible */
@media(min-width:1100px){
  .split-shelves{
    grid-template-columns:1fr 1fr;
  }

  .split-shelves .shelf-head{
    min-height:88px;
  }

  .split-shelves .shelf-head h2{
    white-space:nowrap;
    font-size:28px;
    letter-spacing:-0.02em;
  }
}

/* Tablet/mobile can wrap naturally without breaking alignment */
@media(max-width:1099px){
  .split-shelves .shelf-head{
    min-height:0;
  }

  .split-shelves .shelf-head h2{
    white-space:normal;
  }
}


/* ===== V0.11 final three-point correction ===== */

/* 1. Place / People: make image windows exactly the same height within each row */
.split-shelves .mini-card img,
.split-shelves .portrait-card img{
  width:100%;
  height:176px !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
  object-position:center !important;
}
.split-shelves .mini-card,
.split-shelves .portrait-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.split-shelves .mini-card > div{
  flex:1;
}

/* 2. Legend / mystery: all visible cards use one identical image window */
.dark-grid{
  align-items:stretch;
}
.dark-grid a{
  display:flex;
  flex-direction:column;
  height:100%;
}
.dark-grid img,
.dark-grid a:nth-child(1) img{
  width:100%;
  height:205px !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
  object-position:center !important;
}
.dark-grid h3{
  margin-top:12px;
}
.dark-grid p{
  margin-bottom:14px;
}

/* 3. Zukan: bookshelf rail rather than 3x3 text boxes */
.encyclopedia{
  overflow:hidden;
}
.book-rail{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:4px 2px 18px;
  scrollbar-width:thin;
}
.book-tile{
  flex:0 0 calc((100% - 72px) / 5);
  min-width:210px;
  scroll-snap-align:start;
}
.book-cover{
  position:relative;
  min-height:320px;
  padding:18px 16px 20px;
  border:1px solid #cdbda8;
  border-radius:9px 14px 14px 9px;
  background:
    linear-gradient(90deg,rgba(78,57,35,.12) 0 7px,transparent 7px),
    linear-gradient(145deg,#ede2cf,#d8c5a7);
  box-shadow:
    0 7px 18px rgba(70,50,30,.10),
    inset 0 0 0 1px rgba(255,255,255,.42);
}
.book-cover::before{
  content:"";
  position:absolute;
  inset:11px;
  border:1px solid rgba(93,71,47,.20);
  border-radius:5px 10px 10px 5px;
  pointer-events:none;
}
.book-image{
  position:relative;
  z-index:1;
  height:178px;
  overflow:hidden;
  border:1px solid rgba(96,76,53,.28);
  background:#ddd2c2;
}
.book-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.book-title{
  position:relative;
  z-index:1;
  margin-top:18px;
  text-align:center;
  font:600 20px/1.35 var(--mincho);
}
.book-en{
  position:relative;
  z-index:1;
  margin-top:7px;
  text-align:center;
  font:700 9px/1.3 var(--gothic);
  letter-spacing:.14em;
  color:#8d7e6c;
}

@media(max-width:1000px){
  .book-tile{
    flex-basis:calc((100% - 36px) / 3);
  }
  .split-shelves .mini-card img,
  .split-shelves .portrait-card img{
    height:190px !important;
  }
}

@media(max-width:700px){
  .book-rail{gap:14px}
  .book-tile{
    flex-basis:calc((100% - 14px) / 2);
    min-width:150px;
  }
  .book-cover{
    min-height:275px;
  }
  .book-image{
    height:145px;
  }
  .book-title{
    font-size:17px;
  }
  .split-shelves .mini-card img,
  .split-shelves .portrait-card img{
    height:165px !important;
  }
  .dark-grid img,
  .dark-grid a:nth-child(1) img{
    height:190px !important;
  }
}


/* ===== V0.12 final micro-adjustments ===== */

/* Paired shelves: reduce title-to-tile gap and force equal full card heights */
.split-shelves{
  gap:34px;
}
.split-shelves .shelf-head{
  min-height:72px !important;
  margin-bottom:10px !important;
}
.split-shelves .shelf-head h2{
  margin-bottom:4px !important;
}
.split-shelves .mini-grid,
.split-shelves .portrait-grid{
  align-items:stretch !important;
  grid-auto-rows:1fr;
  margin-top:0 !important;
}
.split-shelves .mini-card,
.split-shelves .portrait-card{
  height:100% !important;
  min-height:330px;
  display:flex !important;
  flex-direction:column !important;
}
.split-shelves .mini-card img,
.split-shelves .portrait-card img{
  width:100% !important;
  height:182px !important;
  object-fit:cover !important;
  flex:0 0 182px;
}
.split-shelves .mini-card > div{
  flex:1;
  display:flex;
  flex-direction:column;
}
.split-shelves .mini-card p{
  margin-top:auto;
}
.split-shelves .portrait-card h3{
  min-height:2.2em;
}
.split-shelves .portrait-card p{
  margin-top:auto;
}

/* Legend / mystery: identical image height and identical card height */
.dark-grid{
  align-items:stretch !important;
  grid-auto-rows:1fr;
}
.dark-grid a{
  min-height:330px;
  height:100% !important;
  display:flex !important;
  flex-direction:column !important;
}
.dark-grid img,
.dark-grid a:nth-child(1) img{
  width:100% !important;
  height:205px !important;
  object-fit:cover !important;
  flex:0 0 205px;
}
.dark-grid p{
  margin-top:auto !important;
}

/* Zukan bookshelf: compact 8-column desktop grid */
.book-grid{
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.book-tile{
  min-width:0;
}
.book-cover{
  min-height:0 !important;
  height:230px;
  padding:10px 9px 12px;
  border-radius:7px 10px 10px 7px;
  background:
    linear-gradient(90deg,rgba(78,57,35,.10) 0 5px,transparent 5px),
    linear-gradient(145deg,#ede2cf,#d8c5a7);
  box-shadow:0 4px 10px rgba(70,50,30,.08), inset 0 0 0 1px rgba(255,255,255,.35);
}
.book-cover::before{
  inset:7px;
}
.book-image{
  height:132px !important;
  margin:0;
}
.book-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.book-title{
  margin-top:11px;
  font-size:14px;
  line-height:1.3;
}
.book-en{
  margin-top:4px;
  font-size:7px;
  letter-spacing:.11em;
}
.encyclopedia{
  overflow:visible;
}

/* Keep the bookshelf compact vertically */
.encyclopedia{
  margin-top:58px !important;
}
.encyclopedia .shelf-head{
  margin-bottom:8px !important;
}
.encyclopedia .editorial-copy{
  margin-top:7px;
}

/* Responsive */
@media(max-width:1100px){
  .book-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .book-cover{height:250px}
  .book-image{height:150px !important}
}
@media(max-width:700px){
  .split-shelves .shelf-head{
    min-height:0 !important;
    margin-bottom:12px !important;
  }
  .split-shelves .mini-card,
  .split-shelves .portrait-card{
    min-height:300px;
  }
  .split-shelves .mini-card img,
  .split-shelves .portrait-card img{
    height:165px !important;
    flex-basis:165px;
  }
  .dark-grid a{
    min-height:310px;
  }
  .dark-grid img,
  .dark-grid a:nth-child(1) img{
    height:185px !important;
    flex-basis:185px;
  }
  .book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .book-cover{height:245px}
  .book-image{height:145px !important}
  .book-title{font-size:16px}
  .book-en{font-size:8px}
}


/* ===== FINAL: EDITOR'S PICK = 3 related people ===== */
.editor-pick-heading{
  margin:8px 0 18px;
}
.editor-pick-heading h2{
  margin:0 0 7px;
  font:600 30px/1.35 var(--mincho);
}
.editor-pick-heading p{
  max-width:900px;
  margin:0;
  font-size:13px;
  line-height:1.9;
  color:#66615a;
}
.editor-pick-people{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.editor-person-card{
  display:grid;
  grid-template-columns:42% 58%;
  min-height:220px;
  background:#fff;
  border:1px solid #e3ded6;
  text-decoration:none;
  color:inherit;
  overflow:hidden;
}
.editor-person-card img{
  width:100%;
  height:100%;
  min-height:220px;
  object-fit:cover;
}
.editor-person-card > div{
  padding:22px 18px;
}
.editor-person-card span{
  display:block;
  margin-bottom:8px;
  font-size:10px;
  letter-spacing:.09em;
  color:#8d806e;
}
.editor-person-card h3{
  margin:0 0 10px;
  font:600 22px/1.35 var(--mincho);
}
.editor-person-card p{
  margin:0;
  font-size:12px;
  line-height:1.8;
  color:#615d57;
}
@media(max-width:900px){
  .editor-pick-people{grid-template-columns:1fr}
  .editor-person-card{grid-template-columns:38% 62%}
}
@media(max-width:600px){
  .editor-pick-heading h2{font-size:24px}
  .editor-person-card{grid-template-columns:40% 60%; min-height:180px}
  .editor-person-card img{min-height:180px}
  .editor-person-card > div{padding:16px 14px}
  .editor-person-card h3{font-size:19px}
}
