/* =====================================================================
   TravelBeat — v8 参考サイト(corp.drenty.jp)実測値トレース
   実測: 白地 / 文字 #1C1411 / EN見出し futura-pt 84px 字間-1% 行間0.97 w400
         JP見出し shippori-mincho 43px 字間+15% 行間1.6 w500
         本文 shippori-mincho 14.4px / 小さなEN futura 12px 字間+4%
         余白 144px 基調・要所 480px / 帯色 #EDEBEB
         ease cubic-bezier(.25,.46,.45,.94) 1種のみ / 差し色なし・装飾なし
   futura-pt は Adobe Fonts のため、無償代替として最も近い Jost を使用
   ===================================================================== */
:root{
  --ink:#1C1411;
  --ink-60:rgba(28,20,17,.6);
  --ink-40:rgba(28,20,17,.4);
  --ink-12:rgba(28,20,17,.12);
  --bg:#fff;
  --band:#EDEBEB;
  --en:"Jost",-apple-system,sans-serif;
  --mincho:"Shippori Mincho","Shippori Mincho B1","Hiragino Mincho ProN",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  --ease:cubic-bezier(.25,.46,.45,.94);
  --pad:clamp(22px,5.5vw,80px);
}
*{margin:0;padding:0;box-sizing:border-box;}
::selection{background:var(--ink);color:#fff;}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);
  font-size:14px;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}

/* ---------- 文字（実測値そのまま） ---------- */
.en-xl{font-family:var(--en);font-weight:400;font-size:clamp(46px,9.6vw,118px);
  letter-spacing:-.01em;line-height:.97;}
.en-l{font-family:var(--en);font-weight:400;font-size:clamp(34px,6.4vw,84px);
  letter-spacing:-.01em;line-height:.97;}
.jp-l{font-family:var(--mincho);font-weight:500;font-size:clamp(19px,3.3vw,43px);
  letter-spacing:.15em;line-height:1.6;}
.jp-m{font-family:var(--mincho);font-weight:500;font-size:clamp(16px,2.2vw,25px);
  letter-spacing:.12em;line-height:1.75;}
.lbl{font-family:var(--en);font-weight:400;font-size:12px;letter-spacing:.04em;
  text-transform:uppercase;color:var(--ink);}
.tm{font-family:var(--mincho);font-weight:500;font-size:14.4px;letter-spacing:.02em;
  line-height:2.3;color:var(--ink);}
.ts{font-family:var(--sans);font-weight:300;font-size:12.5px;letter-spacing:.03em;
  line-height:2;color:var(--ink-60);}
.num{font-family:var(--en);font-weight:300;letter-spacing:-.01em;}

/* ---------- レイアウト ---------- */
.wrap{padding-left:var(--pad);padding-right:var(--pad);}
.sec{position:relative;}

/* ---------- ヘッダー ---------- */
.hd{position:fixed;top:30px;left:0;right:0;z-index:60;display:flex;align-items:center;
  justify-content:space-between;padding:26px var(--pad);color:#fff;
  transition:all .6s var(--ease);}
.hd.solid{background:rgba(255,255,255,.92);backdrop-filter:blur(8px);color:var(--ink);
  padding:16px var(--pad);box-shadow:0 1px 0 var(--ink-12);}
.hd__l{display:flex;align-items:baseline;gap:11px;flex-shrink:0;}
.hd__l b{font-family:var(--en);font-weight:500;font-size:21px;letter-spacing:.02em;}
.hd__l i{font-family:var(--en);font-weight:400;font-style:normal;font-size:10px;
  letter-spacing:.18em;opacity:.55;}
.hd__n{display:none;gap:32px;font-family:var(--sans);font-weight:400;font-size:12.5px;letter-spacing:.04em;}
.hd__n a{position:relative;padding-bottom:5px;}
.hd__n a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:currentColor;transition:width .5s var(--ease);}
.hd__n a:hover::after{width:100%;}
.hd__c{font-family:var(--sans);font-weight:400;font-size:12.5px;letter-spacing:.06em;
  border:1px solid currentColor;padding:11px 24px;transition:.45s var(--ease);white-space:nowrap;}
.hd__c:hover{background:var(--ink);border-color:var(--ink);color:#fff;}
.hd.solid .hd__c:hover{background:var(--ink);color:#fff;}
@media(min-width:1020px){.hd__n{display:flex;}}

/* ---------- ヒーロー ---------- */
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden;background:#0d0b09;}
.hero__gl,.hero__fb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero__shade{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(185deg,rgba(13,11,9,.42) 0%,rgba(13,11,9,.06) 36%,rgba(13,11,9,.14) 60%,rgba(13,11,9,.62) 100%);}
.hero__in{position:absolute;left:var(--pad);right:var(--pad);bottom:104px;z-index:3;color:#fff;}
.hero__in .en-xl{display:block;}
.hero__jp{font-family:var(--mincho);font-weight:500;font-size:clamp(13px,1.9vw,17px);
  letter-spacing:.24em;margin-top:30px;color:rgba(255,255,255,.94);}
.hero__meta{position:absolute;left:var(--pad);right:var(--pad);bottom:36px;z-index:3;
  display:flex;align-items:center;justify-content:space-between;color:#fff;
  font-family:var(--en);font-size:12px;letter-spacing:.14em;}
.hero__meta .pl{opacity:.7;margin-left:14px;text-transform:uppercase;font-size:11px;letter-spacing:.2em;}
.hero__meta s{text-decoration:none;opacity:.45;}
.hero__sc{display:flex;align-items:center;gap:12px;font-size:10.5px;letter-spacing:.3em;opacity:.85;}
.hero__sc em{display:block;width:52px;height:1px;background:rgba(255,255,255,.3);position:relative;overflow:hidden;}
.hero__sc em::after{content:"";position:absolute;inset:0;background:#fff;
  transform:translateX(-101%);animation:sc 3s var(--ease) infinite;}
@keyframes sc{0%{transform:translateX(-101%);}55%{transform:translateX(0);}100%{transform:translateX(101%);}}

/* ---------- About（pad 144/96 実測） ---------- */
.about{padding:clamp(96px,13vw,144px) var(--pad) clamp(72px,9vw,96px);}
.about__en{margin-top:26px;}
.about__grid{display:grid;gap:44px;margin-top:clamp(40px,5vw,64px);}
@media(min-width:980px){.about__grid{grid-template-columns:1.1fr .9fr;gap:clamp(56px,8vw,140px);align-items:start;}}
.about__jp{max-width:22em;}
.about__txt{max-width:36em;}
.about__txt .tm+.tm{margin-top:20px;}
.more{display:inline-flex;align-items:center;gap:14px;margin-top:36px;
  font-family:var(--en);font-weight:400;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;}
.more em{display:block;width:56px;height:1px;background:var(--ink);transition:width .5s var(--ease);}
.more:hover em{width:84px;}

/* ---------- ギャラリー（横スクラブ） ---------- */
.gal{padding:clamp(96px,13vw,144px) 0;overflow:hidden;}
.gal__track{display:flex;gap:clamp(16px,2.5vw,36px);padding-left:var(--pad);will-change:transform;}
.gal__i{flex:0 0 auto;width:clamp(240px,34vw,480px);}
.gal__i figure{overflow:hidden;}
.gal__i img{width:100%;aspect-ratio:3/4;object-fit:cover;}
.gal__i:nth-child(even){margin-top:clamp(28px,4vw,64px);}
.gal__i figcaption{font-family:var(--en);font-weight:400;font-size:12px;
  letter-spacing:.04em;text-transform:uppercase;margin-top:14px;color:var(--ink);}
.gal__i figcaption span{color:var(--ink-40);margin-left:10px;font-size:11px;letter-spacing:.02em;}

/* ---------- 実績（帯 #EDEBEB / pad 72-144 実測） ---------- */
.rec{background:var(--band);padding:clamp(72px,10vw,144px) var(--pad);position:relative;overflow:hidden;}
.rec__grid{display:grid;gap:48px;position:relative;z-index:1;}
@media(min-width:860px){.rec__grid{grid-template-columns:repeat(3,auto);justify-content:space-between;}}
.rec__i b{display:block;font-family:var(--en);font-weight:300;
  font-size:clamp(64px,9.5vw,120px);line-height:.97;letter-spacing:-.01em;}
.rec__i b i{font-family:var(--mincho);font-weight:500;font-style:normal;
  font-size:.22em;letter-spacing:.12em;margin-left:.24em;}
.rec__i>span{display:block;font-family:var(--sans);font-weight:300;font-size:11.5px;
  letter-spacing:.06em;color:var(--ink-60);margin-top:18px;line-height:2;}
.rec__i b span{font:inherit;color:inherit;display:inline;letter-spacing:inherit;}
.rec__route{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;}
.rec__route svg{width:100%;height:100%;}
.rec__note{position:relative;z-index:1;margin-top:44px;font-family:var(--sans);font-weight:300;
  font-size:10px;letter-spacing:.05em;color:var(--ink-40);}

/* ---------- 旅程スライダー ---------- */
.tours{padding:clamp(96px,13vw,144px) 0 clamp(84px,11vw,120px);}
.tours .swiper{overflow:visible;margin-top:clamp(44px,6vw,64px);}
.tours__hd{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:24px;}
.tc{display:block;}
.tc figure{overflow:hidden;position:relative;}
.tc img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform 1.4s var(--ease);}
.tc:hover img{transform:scale(1.045);}
.tc__t{font-family:var(--mincho);font-weight:500;font-size:16px;letter-spacing:.1em;
  line-height:1.8;margin-top:20px;}
.tc__d{font-family:var(--sans);font-weight:300;font-size:11.5px;letter-spacing:.04em;
  line-height:1.95;color:var(--ink-60);margin-top:8px;}
.tnav{display:flex;align-items:center;gap:16px;margin-top:clamp(36px,5vw,52px);}
.tnav__c{font-family:var(--en);font-size:14px;letter-spacing:.12em;color:var(--ink-40);min-width:70px;}
.tnav__c b{font-weight:400;color:var(--ink);}
.tnav__r{flex:1;height:1px;background:var(--ink-12);position:relative;}
.tnav__r i{position:absolute;left:0;top:0;height:100%;background:var(--ink);width:20%;transition:width .6s var(--ease);}
.tnav__b{width:52px;height:52px;border:1px solid var(--ink-12);display:flex;align-items:center;
  justify-content:center;transition:.45s var(--ease);}
.tnav__b:hover{background:var(--ink);border-color:var(--ink);}
.tnav__b svg{width:15px;height:15px;stroke:var(--ink);fill:none;stroke-width:1;transition:stroke .45s;}
.tnav__b:hover svg{stroke:#fff;}
.tours__note{margin-top:30px;font-family:var(--sans);font-weight:300;font-size:11px;
  letter-spacing:.04em;color:var(--ink-40);line-height:2;}

/* ---------- お客様の声（帯） ---------- */
.vo{background:var(--band);padding:clamp(84px,11vw,144px) var(--pad);}
.vo__grid{display:grid;gap:clamp(40px,6vw,72px);margin-top:clamp(44px,6vw,64px);}
@media(min-width:940px){.vo__grid{grid-template-columns:1fr 1fr;}}
.vo__i{border-top:1px solid var(--ink-12);padding-top:30px;}
.vo__t{font-family:var(--mincho);font-weight:500;font-size:14.4px;letter-spacing:.03em;line-height:2.35;}
.vo__w{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:20px;
  font-family:var(--sans);font-weight:300;font-size:11px;letter-spacing:.05em;color:var(--ink-60);}
.vo__w i{font-family:var(--en);font-style:normal;letter-spacing:.1em;color:var(--ink-40);}

/* ---------- Instagram ---------- */
.ig{padding:clamp(96px,13vw,144px) var(--pad);}
.ig__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:clamp(40px,5vw,60px);}
@media(min-width:820px){.ig__grid{grid-template-columns:repeat(4,1fr);gap:18px;}}
.ig__grid a{overflow:hidden;}
.ig__grid img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform 1.4s var(--ease);}
.ig__grid a:hover img{transform:scale(1.05);}
.ig__note{margin-top:24px;font-family:var(--sans);font-weight:300;font-size:11.5px;
  letter-spacing:.04em;color:var(--ink-40);}

/* ---------- 相談（下 480px 実測トレース） ---------- */
.ct{padding:clamp(120px,16vw,200px) var(--pad) clamp(200px,30vw,480px);text-align:center;}
.ct .jp-l{margin-top:30px;}
.ct__tel{display:inline-block;font-family:var(--en);font-weight:300;
  font-size:clamp(44px,7.5vw,88px);letter-spacing:0;line-height:1;margin-top:clamp(36px,5vw,56px);}
.ct__hr{font-family:var(--sans);font-weight:300;font-size:11.5px;letter-spacing:.08em;
  color:var(--ink-60);margin-top:16px;}
.btn{display:inline-flex;align-items:center;gap:44px;border:1px solid var(--ink);
  color:var(--ink);font-family:var(--sans);font-weight:400;font-size:13px;letter-spacing:.1em;
  padding:20px 34px;margin-top:44px;transition:.5s var(--ease);}
.btn svg{width:22px;height:10px;stroke:currentColor;fill:none;stroke-width:1;}
.btn:hover{background:var(--ink);color:#fff;}
.ct__ad{margin-top:clamp(44px,6vw,64px);font-family:var(--sans);font-weight:300;
  font-size:11px;letter-spacing:.05em;color:var(--ink-60);line-height:2.2;}
.ct__ad a{border-bottom:1px solid var(--ink-12);}

/* ---------- フッター ---------- */
.ft{background:var(--ink);color:rgba(255,255,255,.62);padding:clamp(56px,8vw,84px) var(--pad) 36px;}
.ft__t{display:grid;gap:38px;padding-bottom:42px;border-bottom:1px solid rgba(255,255,255,.14);}
@media(min-width:900px){.ft__t{grid-template-columns:1fr 1.4fr;}}
.ft__b{font-family:var(--en);font-weight:400;font-size:clamp(30px,4vw,44px);letter-spacing:.02em;color:#fff;line-height:1;}
.ft__b i{display:block;font-family:var(--mincho);font-weight:500;font-style:normal;
  font-size:11px;letter-spacing:.26em;color:rgba(255,255,255,.5);margin-top:16px;}
.ft__n{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;
  font-family:var(--sans);font-weight:300;font-size:12px;letter-spacing:.03em;align-content:start;}
@media(min-width:900px){.ft__n{grid-template-columns:repeat(3,1fr);}}
.ft__n a:hover{color:#fff;}
.ft__c{font-family:var(--en);font-size:10px;letter-spacing:.16em;margin-top:28px;opacity:.45;}

/* ---------- スマホ固定ボタン ---------- */
.mb{position:fixed;left:0;right:0;bottom:0;z-index:55;display:grid;grid-template-columns:1fr 1fr;
  transform:translateY(101%);transition:transform .55s var(--ease);}
.mb.on{transform:none;}
.mb a{padding:16px 0;text-align:center;font-family:var(--sans);font-weight:400;font-size:12.5px;letter-spacing:.08em;}
.mb a:first-child{background:#fff;color:var(--ink);box-shadow:0 -1px 0 var(--ink-12);}
.mb a:last-child{background:var(--ink);color:#fff;}
@media(min-width:1020px){.mb{display:none;}}

.dm{position:fixed;top:0;left:0;right:0;z-index:90;background:var(--ink);color:rgba(255,255,255,.75);
  font-family:var(--sans);font-weight:300;font-size:10.5px;letter-spacing:.04em;
  text-align:center;padding:7px 12px;}
body{padding-top:30px;}

/* ================= 下層 ================= */
.sub-hd{padding:clamp(160px,22vw,240px) var(--pad) clamp(48px,7vw,72px);}
.crumb{font-family:var(--en);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-40);margin-top:24px;}
.prof{display:grid;gap:36px;padding:clamp(56px,8vw,88px) 0;border-top:1px solid var(--ink-12);}
@media(min-width:980px){.prof{grid-template-columns:5fr 7fr;gap:clamp(48px,6vw,96px);align-items:start;}}
.prof figure{overflow:hidden;}
.prof img{width:100%;aspect-ratio:3/4;object-fit:cover;}
.prof__n{font-family:var(--mincho);font-weight:500;font-size:clamp(20px,2.6vw,26px);letter-spacing:.12em;}
.prof__n em{display:block;font-family:var(--en);font-style:normal;font-weight:400;font-size:12px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-40);margin-bottom:12px;}
.prof__meta{display:flex;gap:clamp(26px,4vw,52px);flex-wrap:wrap;margin:28px 0;
  padding:22px 0;border-top:1px solid var(--ink-12);border-bottom:1px solid var(--ink-12);}
.prof__meta b{display:block;font-family:var(--en);font-weight:300;font-size:clamp(32px,4vw,44px);line-height:1;}
.prof__meta b i{font-family:var(--mincho);font-weight:500;font-style:normal;font-size:.36em;
  letter-spacing:.1em;margin-left:.2em;}
.prof__meta span{display:block;font-family:var(--sans);font-weight:300;font-size:10.5px;
  letter-spacing:.05em;color:var(--ink-40);margin-top:10px;}
.prof__h{font-family:var(--mincho);font-weight:500;font-size:14.5px;letter-spacing:.1em;
  margin:28px 0 10px;padding-left:13px;border-left:1px solid var(--ink);}
.plan{list-style:none;border-top:1px solid var(--ink-12);}
.plan li{padding:13px 0;border-bottom:1px solid var(--ink-12);
  font-family:var(--sans);font-weight:300;font-size:12.5px;letter-spacing:.03em;line-height:2;color:var(--ink-60);}
.note{font-family:var(--sans);font-weight:300;font-size:11px;letter-spacing:.04em;
  color:var(--ink-40);line-height:2;margin-top:28px;}

.lp-hero{position:relative;height:76svh;min-height:460px;overflow:hidden;background:#0d0b09;}
.lp-hero .plx{position:absolute;inset:0;overflow:hidden;}
.lp-hero img{width:100%;height:116%;object-fit:cover;}
.lp-hero::after{content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(185deg,rgba(13,11,9,.4) 0%,rgba(13,11,9,.05) 40%,rgba(13,11,9,.68) 100%);}
.lp-hero__in{position:absolute;left:var(--pad);right:var(--pad);bottom:52px;z-index:3;color:#fff;}
.lp-hero__c{font-family:var(--en);font-weight:400;font-size:clamp(15px,2vw,21px);
  letter-spacing:.12em;text-transform:uppercase;opacity:.85;}
.lp-hero__t{font-family:var(--mincho);font-weight:500;font-size:clamp(23px,4vw,40px);
  letter-spacing:.12em;line-height:1.65;margin-top:16px;}
.lp-hero__d{font-family:var(--sans);font-weight:300;font-size:12.5px;letter-spacing:.06em;margin-top:14px;opacity:.9;}
.lp-bar{background:var(--band);padding:clamp(28px,4vw,44px) var(--pad);display:grid;gap:24px;}
@media(min-width:820px){.lp-bar{grid-template-columns:repeat(4,1fr);}}
.lp-bar b{display:block;font-family:var(--en);font-weight:300;font-size:clamp(26px,3vw,36px);line-height:1;}
.lp-bar b i{font-family:var(--mincho);font-weight:500;font-style:normal;font-size:.44em;letter-spacing:.08em;margin-left:.18em;}
.lp-bar span{display:block;font-family:var(--sans);font-weight:300;font-size:10.5px;
  letter-spacing:.05em;color:var(--ink-60);margin-top:8px;}
.why{padding:clamp(84px,11vw,144px) var(--pad);}
.why__grid{display:grid;gap:36px;margin-top:clamp(40px,5vw,60px);}
@media(min-width:940px){.why__grid{grid-template-columns:repeat(3,1fr);gap:clamp(32px,4vw,60px);}}
.why__i{border-top:1px solid var(--ink-12);padding-top:24px;}
.why__i h3{font-family:var(--mincho);font-weight:500;font-size:16px;letter-spacing:.1em;
  line-height:1.85;margin:10px 0 12px;}
.why__i .wn{font-family:var(--en);font-weight:400;font-size:12px;letter-spacing:.1em;color:var(--ink-40);}
.itinsec{background:var(--band);padding:clamp(84px,11vw,144px) var(--pad);}
.itin{margin-top:clamp(40px,5vw,60px);border-top:1px solid var(--ink-12);}
.itin__d{display:grid;gap:12px;padding:clamp(28px,4vw,40px) 0;border-bottom:1px solid var(--ink-12);}
@media(min-width:820px){.itin__d{grid-template-columns:120px 1fr;gap:clamp(30px,4vw,64px);align-items:start;}}
.itin__n{font-family:var(--en);font-weight:400;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-40);padding-top:5px;}
.itin__t{font-family:var(--mincho);font-weight:500;font-size:16px;letter-spacing:.1em;line-height:1.85;}
.itin__x{margin-top:8px;}
.itin__m{display:inline-block;font-family:var(--sans);font-weight:300;font-size:10.5px;
  letter-spacing:.05em;color:var(--ink-40);border:1px solid var(--ink-12);padding:4px 11px;margin-top:12px;}
.hotels{display:grid;gap:36px;margin-top:clamp(40px,5vw,60px);}
@media(min-width:820px){.hotels{grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,52px);}}
.hotel figure{overflow:hidden;}
.hotel img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.hotel h3{font-family:var(--mincho);font-weight:500;font-size:15.5px;letter-spacing:.1em;margin-top:18px;}
.lq{padding:clamp(84px,11vw,132px) var(--pad);}
.lq__box{max-width:660px;border-top:1px solid var(--ink-12);padding-top:28px;margin-top:clamp(36px,5vw,52px);}
