/* ---------- page head ---------- */
  .page-head{padding-block:52px 4px; max-width:720px}
  .page-head h1{font-size:clamp(36px,5.4vw,54px); font-weight:800; margin:14px 0 16px; letter-spacing:-.01em}
  .page-head h1 em{font-style:normal; color:var(--red)}
  .page-head p{font-size:18.5px; color:var(--soft); margin:0}
  .page-head p strong{color:var(--ink)}

  /* ---------- sections ---------- */
  section.block{padding-block:84px 8px}
  .sec-head{max-width:640px; margin-bottom:36px}
  .sec-kicker{color:var(--red); font-weight:700; font-size:13px; letter-spacing:.16em; text-transform:uppercase; display:flex; align-items:center; gap:10px}
  .sec-kicker .jp{letter-spacing:.2em; font-size:14px}
  .sec-head h2{font-size:clamp(29px,4vw,40px); margin:10px 0 12px}
  .sec-head p{color:var(--soft); margin:0}
  .text-link{font-weight:700}

  /* photo under included list */
  .do-photo{margin-top:34px; border-radius:16px; overflow:hidden; box-shadow:var(--shadow)}
  .do-photo img{width:100%; height:300px; object-fit:cover}
  .do-photo figcaption{font-size:13.5px; color:var(--faint); padding:10px 4px 0; background:var(--bg)}
  .price-note{color:var(--soft); margin-top:22px}
  .price-note strong{color:var(--ink)}

  /* included list */
  .included{border-top:1px solid var(--line)}
  .inc-row{display:grid; grid-template-columns:64px 1fr; gap:22px; padding:28px 0; border-bottom:1px solid var(--line)}
  .inc-mark{
    width:48px; height:48px; border-radius:50%; border:2px solid var(--red); color:var(--red);
    display:grid; place-items:center; font-family:"Shippori Mincho B1",serif; font-weight:800; font-size:17px;
  }
  .inc-row h3{font-size:21px; margin:2px 0 8px}
  .inc-row p{margin:0 0 10px; color:var(--soft); max-width:56em}
  .inc-row p:last-child{margin-bottom:0}
  .inc-row p strong{color:var(--ink)}
  .inc-row ul{margin:0; padding:0; list-style:none}
  .inc-row ul li{padding:6px 0 6px 26px; position:relative; color:var(--soft)}
  .inc-row ul li::before{content:"—"; position:absolute; left:0; color:var(--red); font-weight:700}
  .inc-row ul li strong{color:var(--ink)}
  @media (max-width:640px){ .inc-row{grid-template-columns:1fr} }

  /* how it works */
  .steps{list-style:none; margin:0; padding:0; position:relative}
  .steps::before{content:""; position:absolute; left:23px; top:14px; bottom:14px; width:2px; background:var(--line)}
  .step{display:grid; grid-template-columns:48px 1fr; gap:22px; padding:16px 0; position:relative}
  .step-dot{
    width:48px; height:48px; border-radius:50%; background:var(--bg); border:2px solid var(--red);
    color:var(--red); display:grid; place-items:center; font-family:"Shippori Mincho B1",serif;
    font-weight:800; font-size:18px; position:relative; z-index:1;
  }
  .step.optional .step-dot{border-style:dashed; background:var(--tint)}
  .step h3{font-size:20px; margin:2px 0 6px; display:flex; flex-wrap:wrap; align-items:center; gap:10px}
  .step p{margin:0; color:var(--soft); max-width:52em}
  .badge-optional{
    font-family:"Zen Kaku Gothic New",sans-serif; font-size:12px; font-weight:700; letter-spacing:.08em;
    text-transform:uppercase; color:var(--red-deep); background:var(--tint);
    border:1px dashed var(--red); border-radius:999px; padding:3px 11px;
  }

  /* sample trip */
  .sample{
    margin-top:84px; background:var(--ink); color:var(--bg); border-radius:22px; padding:52px 46px;
  }
  .sample .sec-kicker{color:var(--red)}
  .sample h2{font-size:clamp(29px,4vw,40px); margin:10px 0 12px}
  .sample p{opacity:.82; max-width:56em}
  .sample p strong{opacity:1}
  .route{display:flex; flex-wrap:wrap; align-items:center; gap:8px 0; margin:30px 0 8px}
  .route .city{text-align:center; padding:0 6px}
  .route .city b{display:block; font-family:"Shippori Mincho B1",serif; font-size:19px; line-height:1.25}
  .route .city span{font-size:13px; opacity:.65; letter-spacing:.12em}
  .route .arrow{color:var(--red); font-weight:700; padding:0 2px}
  .sample-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:28px 0}
  .sample-grid img{width:100%; height:230px; object-fit:cover; border-radius:12px}
  .budget{display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 20px; border-top:1px solid color-mix(in srgb, var(--bg) 25%, transparent); border-bottom:1px solid color-mix(in srgb, var(--bg) 25%, transparent); padding:20px 0; margin-bottom:28px}
  .budget .amount{font-family:"Shippori Mincho B1",serif; font-weight:800; font-size:clamp(36px,5vw,52px); line-height:1}
  .budget .what{opacity:.82; font-size:15px}
  .sample-actions{display:flex; flex-wrap:wrap; gap:12px}
  .btn-cream{background:var(--bg); color:var(--red-deep)}
  .btn-cream:hover{background:var(--tint); color:var(--red-deep); text-decoration:none}
  .btn-outline-cream{background:transparent; color:var(--bg); border-color:color-mix(in srgb, var(--bg) 45%, transparent)}
  .btn-outline-cream:hover{border-color:var(--bg); color:var(--bg); text-decoration:none}
  .sample .fineprint{font-size:13.5px; opacity:.6; margin:20px 0 0}
  @media (max-width:760px){ .sample{padding:36px 24px} .sample-grid{grid-template-columns:1fr} .sample-grid img{height:200px} }

  /* something special */
  .special{
    margin-top:40px; border:1px solid var(--line); border-radius:20px; overflow:hidden;
    background:var(--bg); display:grid; grid-template-columns:1.12fr .88fr;
  }
  .special-text{padding:42px 42px 38px}
  .special-text h2{font-size:clamp(27px,3.6vw,36px); margin:10px 0 16px}
  .special-text p{color:var(--soft); margin:0 0 14px}
  .special-text p strong{color:var(--ink)}
  .special-text p:last-child{margin-bottom:0}
  .special-side{
    background:var(--tint); padding:42px 36px 38px; display:flex; flex-direction:column; align-items:flex-start;
  }
  .special-side .label{
    font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--red-deep); margin:0 0 12px;
  }
  .special-side h3{font-size:24px; margin:0 0 10px}
  .special-side p{color:var(--soft); margin:0 0 14px; font-size:15.5px; line-height:1.7}
  .special-side .places-list{margin:0 0 18px; padding:0; list-style:none; width:100%}
  .special-side .places-list li{padding:8px 0; border-bottom:1px solid var(--line); font-size:15px; color:var(--soft)}
  .special-side .places-list li:last-child{border-bottom:none}
  .special-side .places-list b{color:var(--ink); font-weight:700}
  .special-side a{font-weight:700; margin-top:auto}
  .special-side .note{font-size:13.5px; color:var(--faint); margin:16px 0 0}
  @media (max-width:820px){
    .special{grid-template-columns:1fr}
    .special-text{padding:32px 24px 28px}
    .special-side{padding:30px 24px}
  }

  /* closing CTA */
  .cta-band{
    margin:84px 0 0; background:var(--red); color:#FFF3E4; border-radius:22px; padding:48px 46px;
    display:flex; flex-wrap:wrap; align-items:center; gap:22px 34px; position:relative; overflow:hidden;
  }
  .cta-band h2{color:#FFF8EC; font-size:clamp(27px,3.8vw,36px); margin:0; max-width:18em}
  .cta-band p{color:#FFDFC9; margin:6px 0 0; max-width:40em}
  .cta-band .btn{margin-left:auto}
  .btn-white{background:#FFF8EC; color:#8F2408}
  .btn-white:hover{background:#FFE9D2; color:#8F2408; text-decoration:none}
  @media (max-width:700px){ .cta-band{padding:36px 24px} .cta-band .btn{margin-left:0} }
  @media (max-width:430px){
    .page-head{padding-block-start:40px}
    .page-head h1{font-size:34px}
    section.block{padding-block:64px 8px}
    .sample{padding:32px 18px}
    .special-text,.special-side{padding:28px 18px}
    .cta-band{padding:34px 18px}
  }
