/* ---------- hero ---------- */
  .hero{padding-block:34px 0}
  .hero-grid{display:grid; grid-template-columns:1.02fr .98fr; gap:44px; align-items:center}
  .hero-eyebrow{display:flex; align-items:center; gap:10px; color:var(--red); font-weight:700; font-size:13.5px; letter-spacing:.16em; text-transform:uppercase}
  .hero-eyebrow::before{content:""; width:34px; height:2px; background:var(--red)}
  .hero h1{font-size:clamp(42px,6.2vw,68px); font-weight:800; margin:16px 0 18px; letter-spacing:-.01em}
  .hero h1 em{font-style:normal; color:var(--red)}
  .hero-lede{font-size:18.5px; color:var(--soft); margin:0 0 14px; max-width:34em}
  .hero-lede strong{color:var(--ink)}
  .hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin:26px 0 18px}
  .hero-note{font-size:14.5px; color:var(--faint); margin:0; display:flex; gap:9px; align-items:baseline}
  .hero-note .dot{color:var(--red); font-weight:700}
  .hero-photo{position:relative}
  .hero-photo .frame{
    border-radius:170px 170px 14px 14px; overflow:hidden; box-shadow:var(--shadow);
    aspect-ratio:4/4.6; background:var(--tint);
  }
  .hero-photo img{width:100%; height:100%; object-fit:cover}
  .hero-stamp{
    position:absolute; right:-8px; bottom:34px; background:var(--bg); border:1px solid var(--line);
    border-radius:12px; padding:12px 16px; box-shadow:var(--shadow); display:flex; align-items:center; gap:12px;
  }
  .hero-stamp .hanko{width:36px; height:36px; flex-basis:36px; font-size:18px}
  .hero-stamp b{font-family:"Shippori Mincho B1",serif; font-size:15.5px; display:block; line-height:1.3}
  .hero-stamp span{font-size:12.5px; color:var(--faint)}
  .hero-vertical{
    position:absolute; left:-16px; top:22px; writing-mode:vertical-rl; letter-spacing:.42em;
    font-family:"Shippori Mincho B1",serif; font-size:14px; color:var(--faint);
  }
  @media (max-width:860px){
    .hero-grid{grid-template-columns:1fr; gap:30px}
    .hero-photo .frame{aspect-ratio:4/3.1; border-radius:120px 120px 14px 14px}
    .hero-vertical{display:none}
    .hero-stamp{right:10px; bottom:12px}
  }

  .trust{
    margin-top:52px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    padding:15px 0; display:flex; flex-wrap:wrap; gap:10px 30px; justify-content:center;
    font-size:14.5px; color:var(--soft); font-weight:500; text-align:center;
  }
  .trust span{display:inline-flex; align-items:center; gap:30px}
  .trust i{font-style:normal; color:var(--red); font-weight:700}

  /* ---------- 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}

  /* meet */
  .meet-text{max-width:720px}
  .meet-text p{color:var(--soft); margin:0 0 16px}
  .meet-text p strong{color:var(--ink)}
  .chips{display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 22px}
  .chip{border:1px solid var(--line); background:var(--bg); border-radius:999px; padding:6px 14px; font-size:13.5px; font-weight:500; color:var(--soft)}
  .chip b{color:var(--red); font-weight:700}
  .text-link{font-weight:700}

  /* what I do */
  .do-list{border-top:1px solid var(--line)}
  .do-row{display:grid; grid-template-columns:86px 1fr 1.2fr; gap:26px; padding:30px 0; border-bottom:1px solid var(--line); align-items:baseline}
  .do-num{font-family:"Shippori Mincho B1",serif; font-weight:800; font-size:34px; color:var(--red); line-height:1}
  .do-row h3{font-size:22px; margin:0}
  .do-row p{margin:0; color:var(--soft)}
  .do-row p strong{color:var(--ink)}
  @media (max-width:760px){ .do-row{grid-template-columns:52px 1fr} .do-row p{grid-column:2} .do-num{font-size:26px} }
  .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)}
  figure{margin:0}
  .price-note{color:var(--soft); margin-top:22px}
  .price-note strong{color:var(--ink)}

  /* 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} }

  /* guests / testimonials */
  .big-quote{
    font-family:"Shippori Mincho B1",serif; font-size:clamp(23px,3.4vw,32px); font-weight:600; line-height:1.55;
    margin:0 0 14px; max-width:24em;
  }
  .big-quote::before{content:"“"; color:var(--red)}
  .attribution{color:var(--faint); font-size:14.5px; margin-bottom:30px}
  .highlights{display:grid; grid-template-columns:1fr 1fr; gap:6px 40px; margin:0 0 30px; padding:0; list-style:none}
  .highlights li{padding:10px 0 10px 26px; position:relative; color:var(--soft); border-bottom:1px solid var(--line)}
  .highlights li::before{content:"—"; position:absolute; left:0; color:var(--red); font-weight:700}
  .highlights li strong{color:var(--ink)}
  @media (max-width:760px){ .highlights{grid-template-columns:1fr} }
  .lesson{
    background:var(--tint); border-radius:14px; padding:24px 26px; display:grid;
    grid-template-columns:auto 1fr; gap:18px; align-items:start; margin-bottom:40px;
  }
  .lesson .mark{font-family:"Shippori Mincho B1",serif; font-weight:800; color:var(--red); font-size:22px; border:2px solid var(--red); border-radius:50%; width:44px; height:44px; display:grid; place-items:center}
  .lesson h3{margin:2px 0 6px; font-size:19px}
  .lesson p{margin:0; color:var(--soft)}
  @media (max-width:600px){ .lesson{grid-template-columns:1fr} }
  .guest-cards{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:40px}
  .guest-card{margin:0; min-width:0; padding:28px 26px; background:var(--tint); border:1px dashed var(--faint); border-radius:14px; display:flex; flex-direction:column}
  .guest-card-real{position:relative}
  .guest-card-real.testimonial-popup-ready,.guest-card-lee{height:230px}
  .guest-card-quote{margin:0}
  .guest-card-preview{position:relative}
  .guest-stars{color:var(--red); font-size:18px; line-height:1; letter-spacing:.14em; margin-bottom:18px}
  .guest-card-copy{font-family:"Shippori Mincho B1",serif; font-size:clamp(17px,2vw,19px); font-style:italic; font-weight:500; line-height:1.72; color:var(--ink); margin:0 0 26px}
  .testimonial-popup-ready .guest-card-copy{display:-webkit-box; margin:0; overflow:hidden; text-overflow:ellipsis; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2}
  .guest-card-trigger{display:none}
  .testimonial-popup-ready .guest-card-trigger{display:block; position:relative; z-index:1; align-self:flex-start; width:100%; margin-top:7px; padding:0; border:0; border-radius:6px; background:transparent; color:var(--red-deep); font:inherit; font-size:11px; font-weight:700; letter-spacing:.08em; line-height:1.5; text-align:left; text-transform:uppercase; cursor:pointer}
  .testimonial-popup-ready .guest-card-trigger::before{content:""; position:absolute; top:-72px; right:0; bottom:0; left:0}
  .testimonial-popup-ready .guest-card-trigger:focus-visible{outline:3px solid var(--red); outline-offset:3px}
  .testimonial-popup-ready:hover .guest-card-trigger,.testimonial-popup-ready:focus-within .guest-card-trigger{text-decoration:underline; text-underline-offset:3px}
  .guest-card-pending{color:var(--soft)}
  .guest-card-credit{margin-top:auto; font-style:normal}
  .guest-card-credit strong,.guest-card-credit span{display:block}
  .guest-card-credit strong{font-size:15px; color:var(--ink); margin-bottom:6px}
  .guest-card-credit span{font-size:13.5px; color:var(--faint); line-height:1.5}
  .testimonial-popup-layer{position:fixed; inset:0; z-index:100; pointer-events:none}
  .testimonial-popup{position:fixed; z-index:101; visibility:hidden; width:min(520px,calc(100vw - 32px)); max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); padding:26px; overflow:auto; border:1px solid var(--line); border-radius:16px; background:var(--bg); box-shadow:0 24px 70px rgba(33,26,20,.24); pointer-events:auto}
  .testimonial-popup.is-positioned{visibility:visible}
  .testimonial-popup-header{display:flex; gap:18px; align-items:flex-start; justify-content:space-between; margin-bottom:18px}
  .testimonial-popup-eyebrow{margin:0 0 8px; color:var(--red); font-size:12px; font-weight:700; letter-spacing:.14em; line-height:1.4; text-transform:uppercase}
  .testimonial-popup-header h2{margin:0; font-size:22px}
  .testimonial-popup-close{display:grid; flex:0 0 44px; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--bg); color:var(--ink); font:inherit; font-size:25px; line-height:1; cursor:pointer}
  .testimonial-popup-stars{margin-bottom:18px; color:var(--red); font-size:18px; line-height:1; letter-spacing:.14em}
  .testimonial-popup blockquote{margin:0}
  .testimonial-popup-quote{margin:0 0 20px; color:var(--ink); font-family:"Shippori Mincho B1",serif; font-size:clamp(17px,2.2vw,20px); font-style:italic; line-height:1.72}
  .testimonial-popup-context{margin:0; color:var(--faint); font-size:13.5px}
  @media (max-width:760px){ .guest-cards{grid-template-columns:1fr} }
  @media (max-width:430px){
    .guest-card{padding:24px 20px}
    .guest-card-real.testimonial-popup-ready,.guest-card-lee{height:220px}
    .testimonial-popup{padding:22px 20px}
  }
  @media (prefers-reduced-motion:no-preference){
    .testimonial-popup{animation:testimonial-popup-in .16s ease-out}
    @keyframes testimonial-popup-in{from{opacity:0; transform:translateY(8px) scale(.985)}to{opacity:1; transform:none}}
  }

  /* enquire */
  .enquire{
    margin:84px 0 0; background:var(--red); color:#FFF3E4; border-radius:22px; padding:56px 46px;
    position:relative; overflow:hidden;
  }
  .enquire .big-jp{
    position:absolute; right:18px; top:6px; font-family:"Shippori Mincho B1",serif; font-size:120px;
    color:rgba(255,243,228,.13); line-height:1; pointer-events:none; user-select:none;
  }
  .enquire h2{color:#FFF8EC; font-size:clamp(29px,4.4vw,42px); margin:0 0 14px; max-width:16em}
  .enquire p{color:#FFDFC9; max-width:44em; margin:0 0 16px}
  .enquire .fineprint{font-size:13.5px; color:#FFC9AC; margin-top:22px}
  @media (max-width:700px){ .enquire{padding:38px 24px} .enquire .big-jp{font-size:76px} }

  /* something special — after the enquire call to action */
  .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-ideas{list-style:none; margin:20px 0 18px; padding:0}
  .special-ideas li{padding:9px 0 9px 26px; position:relative; color:var(--soft); border-bottom:1px solid var(--line)}
  .special-ideas li:last-child{border-bottom:none}
  .special-ideas li::before{content:"—"; position:absolute; left:0; color:var(--red); font-weight:700}
  .special-ideas li strong{color:var(--ink)}
  .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}
  }

  @media (max-width:430px){
    .hero{padding-block-start:28px}
    .hero h1{font-size:clamp(36px,12vw,48px)}
    .hero-actions,.sample-actions{display:grid;grid-template-columns:1fr}
    section.block{padding-block:64px 8px}
    .sample{padding:32px 18px}
    .enquire{padding:34px 16px}
    .special-text,.special-side{padding:28px 18px}
  }
