@charset "UTF-8";
/* ねぎらい散歩 | NEGIRAI WALK */

:root{
  --ink:#1a1a1a;
  --gray-text:#4a4a4a;
  --gray-light:#8a8a8a;
  --olive:#8c9271;
  --placeholder:#d9d9d9;
  --navy-1:#2c4055;
  --navy-2:#405a73;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
#prologue,#about,#walk,#story,#letter,#information,#questions,#reserve{
  scroll-margin-top:90px;
}
body{
  font-family:'Noto Sans JP', sans-serif;
  color:var(--ink);
  background:#ffffff;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;}
.serif{font-family:'Shippori Mincho', serif;}

.page{display:flex;align-items:flex-start;}

/* ---------- SIDEBAR ---------- */
.sidebar{
  width:320px;
  flex-shrink:0;
  position:sticky;
  top:0;
  height:100vh;
  padding:48px 40px;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:none;
}
.sidebar::-webkit-scrollbar{display:none;}
.sidebar .logo{width:230px;margin-bottom:56px;}
.contents-label{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.08em;
  margin-bottom:28px;
}
.nav-item{
  display:block;
  margin-bottom:26px;
  text-decoration:none;
  color:inherit;
}
.nav-item .num{
  font-size:14px;
  font-weight:700;
  letter-spacing:0.03em;
  margin-bottom:6px;
}
.nav-item .desc{
  font-size:13.5px;
  color:var(--gray-text);
}
.sidebar-spacer{flex:1;}
.insta-box{
  width:40px;height:40px;
  color:var(--ink);
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  transition:opacity .2s ease;
}
.insta-box:hover{opacity:0.6;}
.insta-box svg{width:24px;height:24px;}

/* ---------- MOBILE TOPBAR / HAMBURGER ---------- */
.mobile-topbar{
  display:none;
  position:sticky;
  top:0;
  z-index:900;
  align-items:center;
  justify-content:space-between;
  background:#fff;
  padding:18px 22px;
  border-bottom:1px solid #ececec;
}
.mobile-topbar .topbar-logo{width:150px;}
.hamburger{
  width:26px;height:18px;
  position:relative;
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  flex-shrink:0;
}
.hamburger span{
  display:block;
  position:absolute;
  left:0;
  width:100%;
  height:1.5px;
  background:var(--ink);
  border-radius:1px;
  transition:transform .3s ease, opacity .3s ease, top .3s ease;
}
.hamburger span:nth-child(1){top:0;}
.hamburger span:nth-child(2){top:8px;}
.hamburger span:nth-child(3){top:16px;}
.hamburger.open span:nth-child(1){top:8px;transform:rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){top:8px;transform:rotate(-45deg);}

.nav-overlay{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(20,20,20,0.35);
  z-index:998;
  opacity:0;
  transition:opacity .3s ease;
}
.nav-overlay.open{display:block;opacity:1;}

/* ---------- MAIN ---------- */
.content{flex:1;min-width:0;}

/* ---------- HERO ---------- */
.hero{position:relative;height:100vh;min-height:640px;overflow:hidden;}
.hero img{width:100%;height:100%;object-fit:cover;object-position:70% 35%;}
.hero-text{
  position:absolute;
  left: 21%;
  top: 35%;
  transform:translateY(-50%);
  writing-mode:vertical-rl;
  background:rgba(255,255,255,0.9);
  padding:34px 22px;
  font-family:'Shippori Mincho', serif;
  font-weight:700;
  font-size:2.2rem;
  line-height:1.55;
  letter-spacing:0.08em;
  white-space:nowrap;
}
.hero-caption{
  position:absolute;
  left:24px;
  bottom:40px;
  background:#fff;
  padding:14px 22px;
}
.hero-caption .l1{
  font-size:13px;font-weight:700;letter-spacing:0.06em;margin-bottom:4px;
}
.hero-caption .l2{
  font-size:12px;font-weight:700;letter-spacing:0.06em;color:var(--gray-text);
}

/* ---------- SECTION SHARED ---------- */
.section-label{
  font-size:13px;
  font-weight:700;
  letter-spacing:0.06em;
  margin-bottom:22px;
}
.section-heading{
  font-family:'Shippori Mincho', serif;
  font-weight:700;
  font-size:2.5rem;
  letter-spacing:0.04em;
  line-height:1.4;
  margin:0 0 40px;
}
.section-heading.heading-long{
  font-size:clamp(1.25rem, calc(3.7vw - 21px), 2.1rem);
  white-space:nowrap;
}
.body-text p{
  font-size:14.5px;
  line-height:2;
  color:var(--gray-text);
  margin:0 0 8px;
}
.body-text p strong{
  color:var(--ink);
  font-weight:700;
}

/* ---------- 01 PROLOGUE ---------- */
.prologue{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  padding:110px 90px 130px;
  align-items:start;
}
.prologue-images{position:relative;}
.prologue-images .img-main{width:88%;aspect-ratio:2.15/1;object-fit:cover;}
.prologue-images .img-sub{
  width:48%;
  aspect-ratio:1.15/1;
  object-fit:cover;
  margin-top:34px;
  margin-left:20%;
}

/* ---------- 02 ABOUT ---------- */
.about{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  padding:60px 90px 140px;
}
.about-lead{
  font-size:15.5px;
  line-height:2.1;
  color:var(--ink);
  margin:0 0 34px;
}
.about-right{position:relative;}
.about-right .bokeh-img{width:100%;aspect-ratio:2.4/1;object-fit:cover;object-position:88% 45%;filter:blur(1px) brightness(1.05);}
.about-quote{
  font-family:'Shippori Mincho', serif;
  font-weight:700;
  font-size:2.3rem;
  line-height:1.55;
  text-align:right;
  margin-top:190px;
}

/* ---------- 03 WALK ---------- */
.walk-head{text-align:center;padding:100px 40px 50px;}
.walk-head .section-label{margin-bottom:22px;}
.walk-head .section-heading{margin-bottom:0;}
.walk-banner{position:relative;height:560px;overflow:hidden;}
.walk-banner img{
  width:100%;height:100%;object-fit:cover;object-position:50% 35%;
  filter:saturate(0.9);
}
.walk-banner::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(120deg, rgba(30,45,60,0.62), rgba(50,70,90,0.4) 55%, rgba(25,40,55,0.68));
  mix-blend-mode:multiply;
}
.walk-banner::before{
  content:"";
  position:absolute;inset:0;
  background:rgba(30,48,64,0.28);
  z-index:1;
}
.banner-eyebrow{
  position:absolute;top:56px;left:50%;transform:translateX(-50%);
  color:#fff;font-size:13px;font-weight:700;letter-spacing:0.12em;
  z-index:2;
}
.banner-caption{
  position:absolute;right:70px;bottom:56px;text-align:right;color:#fff;
  z-index:2;
}
.banner-caption .title{
  font-family:'Shippori Mincho', serif;
  font-weight:700;font-size:2.1rem;margin-bottom:10px;
}
.banner-caption .meta{
  font-size:11.5px;font-weight:700;letter-spacing:0.08em;
  line-height:1.6;color:rgba(255,255,255,0.85);
}

/* ---------- WALK DETAILS ---------- */
.walk-details{
  max-width:600px;
  margin:0 auto;
  padding:0 40px 110px;
  text-align:center;
}
.bold-quote{
  font-weight:700;
  margin:60px 0 56px;
}
.bold-quote .eyebrow{
  font-size:12px;
  letter-spacing:0.1em;
  margin-bottom:14px;
}
.bold-quote .title{
  font-family:'Shippori Mincho', serif;
  font-size:1.9rem;
  letter-spacing:0.04em;
  margin-bottom:14px;
}
.bold-quote .meta{
  font-size:13.5px;
  letter-spacing:0.04em;
}
.price-note{
  font-size:12px;
  letter-spacing:0.02em;
  color:var(--gray-light);
  margin:-30px 0 0;
}
.reception-label{
  font-weight:700;
  font-size:15px;
  letter-spacing:0.05em;
  margin:56px 0 24px;
}
.reception-dates{
  font-size:14.5px;
  line-height:2.3;
  color:var(--ink);
  margin-bottom:24px;
}
.reception-dates p{margin:0;}
.reception-note{
  font-size:13px;
  letter-spacing:0.03em;
  color:var(--gray-text);
  margin:0 0 48px;
}
.reserve-btn{
  display:inline-block;
  font-size:13px;
  font-weight:700;
  letter-spacing:0.1em;
  padding:17px 44px;
  border:1px solid var(--ink);
  color:var(--ink);
  text-decoration:none;
}
.reserve-btn:hover{background:var(--ink);color:#fff;}

/* ---------- GALLERY ---------- */
.gallery{
  display:flex;
  justify-content:center;
  gap:64px;
  padding:120px 90px 60px;
}
.gallery-col{display:flex;flex-direction:column;gap:48px;width:22%;}
.gallery-col.b{margin-top:110px;}
.gallery-col.c{flex:1;margin-top:200px;}
.placeholder{background:var(--placeholder);width:100%;object-fit:cover;}
.ph-landscape{aspect-ratio:16/11;}
.ph-portrait{aspect-ratio:4/5;}
.photo-caption{margin-top:14px;}
.photo-caption .p1{font-size:13px;font-weight:700;margin-bottom:2px;}
.photo-caption .p2{font-size:13px;font-weight:700;}

.info-block{font-size:14px;line-height:2.1;}
.info-block .row{display:flex;gap:18px;}
.info-block .row .k{width:64px;color:var(--ink);font-weight:700;}
.info-block .row .v{color:var(--ink);}

/* ---------- 04 STORY ---------- */
.story{padding:150px 90px 90px;}
.story-head{max-width:620px;margin:0 0 130px;}
.story-head .section-label{margin-bottom:22px;}
.story-head .section-heading{margin-bottom:20px;}
.story-intro{
  font-family:'Shippori Mincho', serif;
  font-size:1.15rem;
  color:var(--gray-text);
  letter-spacing:0.04em;
}

.story-row{
  display:grid;
  gap:60px;
  align-items:start;
  margin-bottom:100px;
}
.story-row:last-child{margin-bottom:0;}

.story-photo img{width:100%;object-fit:cover;display:block;}
.story-num{
  font-size:13px;
  font-weight:700;
  letter-spacing:0.15em;
  color:var(--gray-light);
  margin-bottom:18px;
}
.story-heading{
  font-family:'Shippori Mincho', serif;
  font-weight:700;
  font-size:1.9rem;
  line-height:1.6;
  letter-spacing:0.03em;
  margin:0 0 26px;
}

.story-row-1{grid-template-columns:7fr 5fr;}
.story-row-1 .story-block{margin-top:100px;}

.story-row-2{grid-template-columns:5fr 7fr;}
.story-row-2 .story-photo{
  width:66%;
  margin-left:auto;
  margin-top:40px;
}

.story-row-3{grid-template-columns:6fr 6fr;}
.story-row-3 .story-photo{
  width:94%;
  margin-left:4%;
}
.story-row-3 .story-block{margin-top:70px;}

/* ---------- 05 LETTER ---------- */
.letter{padding:150px 90px 180px;}
.letter-head{max-width:620px;margin:0 0 90px;}
.letter-head .section-label{margin-bottom:18px;}
.letter-eyebrow{
  font-size:11px;
  font-weight:700;
  letter-spacing:0.14em;
  color:var(--gray-light);
  margin:-8px 0 22px;
}
.letter-head .section-heading{margin-bottom:0;}

.letter-row{
  display:grid;
  grid-template-columns:6fr 5fr;
  gap:90px;
  align-items:start;
}
.letter-body{max-width:520px;}
.letter-signoff{
  display:block;
  width:230px;
  margin:44px 0 0;
}
.letter-signoff img{width:100%;display:block;}

.letter-side{margin-top:60px;}
.letter-photo{width:78%;margin-left:auto;}
.letter-photo img{width:100%;height:auto;}
.letter-caption{
  margin-top:12px;
  font-size:11px;
  letter-spacing:0.1em;
  color:var(--gray-light);
  text-align:right;
}

.letter-profile{
  margin-top:130px;
  font-size:12.5px;
  line-height:1.9;
  color:var(--gray-text);
}
.letter-profile-label{
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:0.03em;
  margin-bottom:10px;
}
.letter-profile p{margin:0 0 10px;}
.letter-profile p:last-child{margin-bottom:0;}
.letter-profile-insta{
  display:inline-flex;
  margin-top:8px;
  color:var(--gray-text);
  transition:opacity .2s ease;
}
.letter-profile-insta:hover{opacity:0.6;}
.letter-profile-insta svg{width:18px;height:18px;display:block;}
.letter-profile-photo{width:188px;margin:0 0 26px;}
.letter-profile-photo img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  display:block;
  filter:saturate(0.9);
}
.letter-profile-photo figcaption{
  margin-top:10px;
  font-size:10px;
  letter-spacing:0.1em;
  color:var(--gray-light);
  line-height:1.4;
}

/* ---------- 06 INFORMATION ---------- */
.info{padding:150px 90px 80px;}

.info-rule{height:1px;background:#e2e2e2;margin:26px 0;}

.info-top{
  display:grid;
  grid-template-columns:minmax(0, max-content) 1fr;
  gap:90px;
  margin-bottom:150px;
}
.info-head{max-width:none;}
.info-head .section-label{margin-bottom:22px;}
.info-head .section-heading{margin-bottom:28px;}
@media (min-width:901px){
  .info-head .section-heading{font-size:clamp(1.9rem, 2.8vw, 2.5rem);}
}
@media (min-width:901px) and (max-width:1279px){
  .info-top{grid-template-columns:1fr;gap:60px;}
  .info-price{max-width:520px;}
}

.info-price{max-width:520px;margin-top:8px;}
.info-price-label{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.12em;
  color:var(--gray-light);
}
.info-price-main{
  display:flex;
  align-items:baseline;
  gap:14px;
}
.info-price-yen{
  font-family:'Shippori Mincho', serif;
  font-weight:700;
  font-size:4rem;
  letter-spacing:0.02em;
  color:var(--ink);
}
.info-price-unit{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.08em;
  color:var(--gray-text);
}
.info-price .info-block .k{
  width:140px;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.08em;
  color:var(--gray-light);
}
.info-price .info-block .row{margin-bottom:12px;}
.info-price .info-block .row:last-child{margin-bottom:0;}
.info-price .price-note{margin:26px 0 0;}

.info-join{max-width:640px;margin-bottom:170px;}
.info-join-label{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.12em;
  color:var(--gray-light);
  margin-bottom:10px;
}
.info-join-heading{
  font-family:'Shippori Mincho', serif;
  font-weight:700;
  font-size:1.7rem;
  letter-spacing:0.03em;
  margin:0 0 40px;
}
.join-step{padding:26px 0;}
.join-step:first-of-type{padding-top:0;}
.join-step-num{
  font-size:13px;
  font-weight:700;
  letter-spacing:0.1em;
  color:var(--ink);
  margin-bottom:10px;
}

.info-cta{text-align:center;}
.info-cta .bold-quote{margin:0 0 32px;}
.info-cta-meta{
  margin-top:22px;
  font-size:11px;
  letter-spacing:0.08em;
  color:var(--gray-light);
}

/* ---------- 08 ENTRY (申し込み・お問い合わせ) ---------- */
.entry{padding:150px 90px 190px;}
.entry-head{max-width:620px;margin:0 0 70px;}
.entry-head .section-label{margin-bottom:22px;}
.entry-head .section-heading{margin-bottom:20px;}

.entry-form{max-width:560px;}
.form-row{margin-bottom:36px;}
.form-row label{
  display:block;
  font-size:13px;
  font-weight:700;
  letter-spacing:0.05em;
  color:var(--ink);
  margin-bottom:12px;
}
.form-row .req{
  display:inline-block;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.05em;
  color:#fff;
  background:var(--olive);
  padding:2px 8px;
  margin-left:8px;
  vertical-align:middle;
}
.form-row input[type="text"],
.form-row input[type="email"],
.form-row input[type="tel"],
.form-row textarea{
  width:100%;
  font-family:'Noto Sans JP', sans-serif;
  font-size:14.5px;
  color:var(--ink);
  padding:12px 2px;
  border:none;
  border-bottom:1px solid #d0d0d0;
  background:transparent;
  outline:none;
  transition:border-color .2s ease;
}
.form-row input[type="text"]:focus,
.form-row input[type="email"]:focus,
.form-row input[type="tel"]:focus{border-bottom-color:var(--ink);}
.form-row textarea{
  border:1px solid #d0d0d0;
  padding:14px;
  line-height:1.8;
  resize:vertical;
}
.form-row textarea:focus{border-color:var(--ink);}

.radio-group{display:flex;flex-direction:column;gap:14px;}
.radio-option,.checkbox-option{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  color:var(--gray-text);
  cursor:pointer;
}
.radio-option input,.checkbox-option input{
  width:16px;height:16px;
  accent-color:var(--ink);
  cursor:pointer;
  flex-shrink:0;
}
.checkbox-option a{color:var(--ink);text-decoration:underline;}

.entry-submit{
  -webkit-appearance:none;
  appearance:none;
  background:#fff;
  cursor:pointer;
  font-family:'Noto Sans JP', sans-serif;
  margin-top:10px;
}
.entry-submit:hover{background:var(--ink);color:#fff;}

/* ---------- 07 QUESTIONS ---------- */
.questions{padding:150px 90px 0;}
.questions-head{max-width:620px;margin:0 0 110px;}
.questions-head .section-label{margin-bottom:18px;}

.questions-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 90px;
}

.qa{margin-bottom:76px;}
.qa:last-child{margin-bottom:0;}
.qa-num{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.12em;
  color:var(--gray-light);
  margin-bottom:14px;
}
.qa-q{
  font-family:'Shippori Mincho', serif;
  font-weight:700;
  font-size:1.35rem;
  line-height:1.6;
  letter-spacing:0.02em;
  margin:0 0 20px;
}

.questions-closing{
  text-align:center;
  padding:190px 24px 0;
}
.questions-closing-photo{
  width:420px;
  max-width:100%;
  margin:0 auto 36px;
}
.questions-closing-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 35%;}
.questions-closing-meta{margin-bottom:36px;}
.sp-br{display:none;}

.colophon{
  text-align:center;
  margin-top:130px;
  font-size:11px;
  letter-spacing:0.1em;
  color:var(--gray-light);
  line-height:1.9;
}

/* ---------- FOOTER ---------- */
.site-footer{
  padding:44px 24px 60px;
  margin-top:70px;
  text-align:center;
  border-top:1px solid #ececec;
}
.footer-links{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px 24px;
  margin-bottom:14px;
}
.footer-links a{
  font-size:11px;
  letter-spacing:0.05em;
  color:var(--gray-text);
  text-decoration:none;
}
.footer-links a:hover{color:var(--ink);}
.footer-copy{
  font-size:10.5px;
  letter-spacing:0.05em;
  color:var(--gray-light);
}

@media (max-width:900px){
  .mobile-topbar{display:flex;}

  .sidebar{
    position:fixed;
    top:0;left:0;
    width:280px;
    max-width:82vw;
    height:100vh;
    height:100dvh;
    padding:32px 32px 28px;
    background:#fff;
    z-index:999;
    transform:translateX(-100%);
    transition:transform .35s cubic-bezier(.4,0,.2,1);
    box-shadow:2px 0 32px rgba(0,0,0,0.12);
    overflow-y:auto;
  }
  .sidebar.open{transform:translateX(0);}
  .sidebar .logo{display:none;}

  .content{width:100%;}

  .hero{height:100svh;min-height:520px;}
  .hero img{object-position:46% 35%;}
  .hero-text{font-size:1.5rem;padding:26px 18px;left:5%;}
  .hero-caption{left:16px;bottom:24px;padding:12px 16px;}

  .prologue{grid-template-columns:1fr;gap:36px;padding:64px 24px 70px;}
  .prologue-images .img-main{width:100%;}
  .prologue-images .img-sub{width:56%;margin-left:auto;margin-right:0;}

  .about{grid-template-columns:1fr;gap:36px;padding:50px 24px 80px;}
  .about-quote{text-align:left;margin-top:32px;font-size:1.8rem;}

  .section-heading{font-size:1.9rem;margin-bottom:28px;}
  .section-heading.heading-long{font-size:min(1.9rem, calc((100vw - 64px) / 13.8));}

  .walk-head{padding:70px 24px 36px;}
  .walk-banner{height:400px;}
  .banner-caption{right:24px;left:24px;bottom:32px;text-align:left;}
  .banner-caption .title{font-size:1.6rem;}
  .banner-eyebrow{top:28px;font-size:11px;}

  .gallery{flex-direction:column;padding:70px 24px 30px;gap:40px;}
  .gallery-col{width:100%;margin-top:0 !important;gap:40px;}
  .gallery-col.a{display:contents;}
  .gallery-col.a > div:last-child{order:2;}
  .gallery-col.b{order:1;}

  .walk-details{padding:0 24px 80px;}
  .bold-quote{margin:44px 0 36px;}
  .bold-quote .title{font-size:1.6rem;}
  .price-note{margin-top:-18px;}
  .reception-label{margin:40px 0 20px;}
  .reserve-btn{width:100%;text-align:center;}

  .story{padding:70px 24px 56px;}
  .story-head{margin-bottom:64px;}
  .story-intro{font-size:1rem;}
  .story-row{
    grid-template-columns:1fr !important;
    gap:24px;
    margin-bottom:64px;
  }
  .story-photo{
    order:1;
    width:100% !important;
    margin:0 !important;
    aspect-ratio:auto !important;
  }
  .story-block{order:2;margin:0 !important;}
  .story-heading{font-size:1.5rem;}

  .letter{padding:70px 24px 90px;}
  .letter-head{margin-bottom:48px;}
  .letter-row{grid-template-columns:1fr !important;gap:48px;}
  .letter-body{max-width:none;}
  .letter-signoff{width:190px;}
  .letter-side{margin-top:0;}
  .letter-photo{width:100%;margin-left:0;}
  .letter-profile{margin-top:56px;}

  .info{padding:70px 24px 90px;}
  .info-top{grid-template-columns:1fr !important;gap:48px;margin-bottom:80px;}
  .info-head{max-width:none;}
  .info-price{max-width:none;}
  .info-price-yen{font-size:3rem;}
  .info-price .info-block .k{width:120px;}
  .info-join{max-width:none;margin-bottom:90px;}
  .info-join-heading{font-size:1.4rem;}

  .entry{padding:70px 24px 90px;}
  .entry-head{margin-bottom:48px;}
  .entry-form{max-width:none;}

  .questions{padding:70px 24px 0;}
  .questions-head{margin-bottom:64px;}
  .questions-row{grid-template-columns:1fr !important;gap:0;}
  .qa{margin-bottom:56px;}
  .qa-q{font-size:1.15rem;}
  .questions-closing{padding:110px 24px 0;}
  .questions-closing-photo{width:100%;}
  .sp-br{display:inline;}
  .section-heading.closing-heading{font-size:min(1.6rem, calc((100vw - 96px) / 11.8));white-space:nowrap;}
  .colophon{margin-top:90px;}
  .site-footer{margin-top:50px;}
}

@media (max-width:480px){
  .hero-text{font-size:1.25rem;}
  .section-heading{font-size:1.6rem;}
  .about-quote{font-size:1.5rem;}
  .bold-quote .title{font-size:1.4rem;}
  .story-heading{font-size:1.3rem;}
  .qa-q{font-size:1.05rem;}
  .info-price-yen{font-size:2.5rem;}
  .info-price .info-block .k{width:96px;}
}

/* ---------- SCROLL REVEAL ----------
   Classes are added only by JS (see bottom of page), so with JS
   disabled or IntersectionObserver unsupported, nothing here ever
   applies and all content stays fully visible. */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .9s cubic-bezier(.16,.84,.44,1), transform .9s cubic-bezier(.16,.84,.44,1);
}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-fade{opacity:0;transition:opacity 1s ease;}
.reveal-fade.is-visible{opacity:1;}
@media (prefers-reduced-motion: reduce){
  .reveal,.reveal-fade{opacity:1 !important;transform:none !important;transition:none !important;}
}
