/* ==========================================================================
   AOKI TRAVEL — base / components（親CC・凍結版）
   すべての値は tokens.css に従う。ページ固有は page-*.css へ。
   ========================================================================== */

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:.01em;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5,h6{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none;transition:color var(--t-fast),background-color var(--t-fast),border-color var(--t-fast),opacity var(--t-mid)}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;vertical-align:top}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:8px;top:-60px;z-index:100;background:var(--orange);color:#fff;padding:8px 14px;border-radius:var(--pill)}
.skip-link:focus{top:8px}

/* ---------- 手描きモチーフ（自作SVG） ---------- */
:root{
  --torn-olive:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 28' preserveAspectRatio='none'%3E%3Cpath fill='%23464a31' d='M0 28V16l14 4 18-9 20 7 17-10 21 8 16-6 22 9 15-11 26 8 18-7 21 10 17-5 23 8 16-12 20 9 19-4 22 10 15-8 24 7 18-11 20 9 21-6 17 8 22-9 18 6 20-8 21 10 19-5 20 8 17-9 20 5 18 8 16-6 V28z'/%3E%3C/svg%3E");
  --torn-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 28' preserveAspectRatio='none'%3E%3Cpath fill='%231b232b' d='M0 28V16l14 4 18-9 20 7 17-10 21 8 16-6 22 9 15-11 26 8 18-7 21 10 17-5 23 8 16-12 20 9 19-4 22 10 15-8 24 7 18-11 20 9 21-6 17 8 22-9 18 6 20-8 21 10 19-5 20 8 17-9 20 5 18 8 16-6 V28z'/%3E%3C/svg%3E");
  --torn-paper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 28' preserveAspectRatio='none'%3E%3Cpath fill='%23fbf2e7' d='M0 28V16l14 4 18-9 20 7 17-10 21 8 16-6 22 9 15-11 26 8 18-7 21 10 17-5 23 8 16-12 20 9 19-4 22 10 15-8 24 7 18-11 20 9 21-6 17 8 22-9 18 6 20-8 21 10 19-5 20 8 17-9 20 5 18 8 16-6 V28z'/%3E%3C/svg%3E");
  --torn-buff:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 28' preserveAspectRatio='none'%3E%3Cpath fill='%23ebd999' d='M0 28V16l14 4 18-9 20 7 17-10 21 8 16-6 22 9 15-11 26 8 18-7 21 10 17-5 23 8 16-12 20 9 19-4 22 10 15-8 24 7 18-11 20 9 21-6 17 8 22-9 18 6 20-8 21 10 19-5 20 8 17-9 20 5 18 8 16-6 V28z'/%3E%3C/svg%3E");
  --squiggle-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 40' preserveAspectRatio='none'%3E%3Cpath fill='none' stroke='%231b232b' stroke-width='5' stroke-linecap='round' d='M12 22c120-14 240 10 380-2s250-16 400-4 140 4 196 0'/%3E%3Cpath fill='none' stroke='%231b232b' stroke-width='3' stroke-linecap='round' opacity='.7' d='M140 34c150-10 300 4 430-6s260-4 300 2'/%3E%3C/svg%3E");
  --squiggle-white:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 40' preserveAspectRatio='none'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='5' stroke-linecap='round' d='M12 22c120-14 240 10 380-2s250-16 400-4 140 4 196 0'/%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' opacity='.7' d='M140 34c150-10 300 4 430-6s260-4 300 2'/%3E%3C/svg%3E");
  --squiggle-orange:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 40' preserveAspectRatio='none'%3E%3Cpath fill='none' stroke='%23b65f04' stroke-width='5' stroke-linecap='round' d='M12 22c120-14 240 10 380-2s250-16 400-4 140 4 196 0'/%3E%3Cpath fill='none' stroke='%23b65f04' stroke-width='3' stroke-linecap='round' opacity='.7' d='M140 34c150-10 300 4 430-6s260-4 300 2'/%3E%3C/svg%3E");
  --check-orange:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23b65f04' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3 11l5 5L17 5'/%3E%3C/svg%3E");
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%231b232b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M3 6l5 5 5-5'/%3E%3C/svg%3E");
}

/* ---------- レイアウト ---------- */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.container--md{max-width:calc(var(--container-md) + var(--gutter)*2)}
.grid-wrap{max-width:calc(var(--grid) + var(--gutter)*2);margin:0 auto;padding:0 var(--gutter)}
.text-col{max-width:var(--text);margin-left:auto;margin-right:auto}
.section{position:relative;padding:var(--sec-pt) 0 var(--sec-pb)}
.section--paper{background:var(--paper)}
.section--white{background:var(--white)}
.section--tight{padding:var(--head-mt) 0 var(--head-mb)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
@media (max-width:767px){.split{grid-template-columns:1fr;gap:28px}}

/* ---------- タイポ ---------- */
.script{font-family:var(--font-script);font-weight:400;line-height:1.1;letter-spacing:0}
.script--section{font-size:var(--script-section);line-height:.95}
.script--inline{font-size:var(--script-inline);line-height:1.3}
.squiggle{position:relative;display:inline-block;padding-bottom:.3em}
.squiggle::after{content:"";position:absolute;left:-3%;right:-3%;bottom:0;height:.24em;background:var(--squiggle-ink) no-repeat center/100% 100%;opacity:.75}
.squiggle--white::after{background-image:var(--squiggle-white)}
.squiggle--orange::after{background-image:var(--squiggle-orange)}
.h-serif{font-family:var(--font-serif);font-weight:700;line-height:1.5;letter-spacing:.01em}
.h-xl{font-size:var(--h-xl);line-height:1.4}
.h-lg{font-size:var(--h-lg);line-height:1.4}
.h-md{font-size:var(--h-md)}
.h-sm{font-size:var(--h-sm)}
.h-xs{font-size:var(--h-xs);line-height:1.6}
.h-serif--light{font-weight:500}
.eyebrow{display:block;font-family:var(--font-body);font-weight:700;font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--orange-text)}
.lead{font-size:18px;line-height:1.8}
.small{font-size:var(--fs-small);line-height:var(--lh-small)}
.muted{color:var(--ink-2)}
.center{text-align:center}
.sec-head{text-align:center;margin:0 auto var(--head-mb)}
.sec-head__en{display:inline-block;margin:0 auto 12px;color:var(--olive)}
.sec-head__ja{font-family:var(--font-serif);font-weight:700;font-size:var(--h-lg);line-height:1.42;letter-spacing:.02em}
.sec-head__lead{max-width:var(--text);margin:20px auto 0;color:var(--ink-2)}
.sec-head--left{text-align:left;margin-left:0}
.sec-head--left .sec-head__en,.sec-head--left .sec-head__lead{margin-left:0}
.dark{color:#fff}
.dark .sec-head__en{color:var(--buff)}
.dark .sec-head__ja{color:#fff}
.dark .sec-head__lead,.dark .muted{color:rgba(255,255,255,.82)}
.br-pc{display:none}
@media (min-width:768px){.br-pc{display:inline}.br-sp{display:none}}

/* ---------- リンク・ボタン ---------- */
.link{color:var(--orange-text);font-weight:700;box-shadow:var(--shadow-link)}
.link:hover{color:var(--orange-2)}
.link--arrow::after{content:" \203A\203A";letter-spacing:-.05em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:52px;padding:15px 38px;border-radius:2px;font-family:var(--font-serif);font-weight:700;font-size:15px;letter-spacing:.13em;line-height:1.3;white-space:nowrap;border:1.5px solid transparent;transition:background-color var(--t-fast),color var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}
.btn:hover{transform:none}
.btn--primary{background:var(--orange);color:#fff}
.btn--primary:hover{background:var(--orange-2);color:#fff}
.btn--secondary{background:var(--olive);color:var(--buff)}
.btn--secondary:hover{background:var(--buff);color:var(--ink)}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--outline:hover{background:var(--ink);color:#fff}
.btn--outline-light{background:transparent;color:var(--buff);border-color:var(--buff)}
.btn--outline-light:hover{background:var(--buff);color:var(--ink)}
.btn--sm{min-height:44px;padding:10px 24px;font-size:13px;letter-spacing:.12em}
.btn--block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.btn-row--center{justify-content:center}
/* 矢印リンク（塗りボタンの隣に置く2つ目のCTA。下線が伸びて矢印が進む） */
.link-arrow{position:relative;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-serif);font-weight:700;font-size:16px;letter-spacing:.04em;color:var(--ink);padding-bottom:6px}
.link-arrow::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;opacity:.35;transform-origin:left;transition:opacity var(--t-fast),transform var(--t-mid) var(--ease)}
.link-arrow .link-arrow__i{display:inline-block;width:22px;height:1px;background:currentColor;position:relative;transition:width var(--t-mid) var(--ease)}
.link-arrow .link-arrow__i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.link-arrow:hover::after{opacity:1}
.link-arrow:hover .link-arrow__i{width:32px}
.link-arrow--light{color:#fff}
.link-arrow--light::after{opacity:.5}


/* ---------- タグ・ピル・指標 ---------- */
.tag{display:inline-block;background:transparent;color:var(--ink);border:1px solid var(--hairline);font-family:var(--font-body);font-size:11px;font-weight:700;line-height:1;padding:6px 11px;border-radius:2px;letter-spacing:.08em}
.tag--cat{background:var(--buff);border-color:var(--buff)}
.tag--paper{background:var(--paper);border-color:var(--paper)}
.tag--orange{background:var(--orange);border-color:var(--orange);color:#fff}
.tag-row{display:flex;flex-wrap:wrap;gap:6px}
.pill-meta{display:inline-flex;align-items:center;gap:.4em;border:1px solid var(--line-strong);border-radius:var(--pill);padding:5px 12px;font-size:var(--fs-small);font-weight:700;color:var(--ink)}
.dark .pill-meta,.card-tour--dark .pill-meta{border-color:rgba(255,255,255,.35);color:#fff}
.level{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-small);font-weight:700}
.level__dots{display:inline-flex;gap:3px}
.level__dots i{width:8px;height:8px;border-radius:50%;background:var(--line);display:block}
.level__dots i.on{background:var(--orange)}
.meta-row{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:var(--fs-small);color:var(--ink-2)}
.meta-row li{display:inline-flex;align-items:center;gap:6px}
.meta-row svg{width:16px;height:16px;flex:none}
.checklist li{position:relative;padding-left:30px;margin-bottom:10px}
.checklist li::before{content:"";position:absolute;left:0;top:.15em;width:20px;height:20px;background:var(--check-orange) no-repeat center/100%}

/* ---------- カード ---------- */
.card{background:var(--white);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 26px}
.card-grid--2{grid-template-columns:repeat(2,1fr)}
.card-grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1023px){.card-grid,.card-grid--4{grid-template-columns:repeat(2,1fr);gap:24px 20px}}
@media (max-width:767px){.card-grid,.card-grid--2,.card-grid--4{grid-template-columns:1fr;gap:22px}}

/* ツアーカード（TOP＝白／一覧＝紺本体） */
.card-tour{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden;transition:transform var(--t-mid),box-shadow var(--t-mid),border-color var(--t-mid)}
.card-tour:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:rgba(27,35,43,.26)}
.card-tour__media{position:relative;display:block;overflow:hidden}
.card-tour__media img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform var(--t-slow) var(--ease)}
.card-tour:hover .card-tour__media img{transform:scale(1.04)}
.card-tour__badge{position:absolute;left:14px;top:14px}
.card-tour__body{display:flex;flex-direction:column;gap:12px;padding:18px 20px 20px;flex:1}
.card-tour__title{font-family:var(--font-serif);font-weight:700;font-size:var(--h-xs);line-height:1.5}
.card-tour__title a{display:block}
.card-tour__title a:hover{color:var(--orange-text)}
.card-tour__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid var(--line);font-size:var(--fs-small)}
.card-tour__price{font-family:var(--font-serif);font-weight:700;font-size:18px}
.card-tour__price small{font-family:var(--font-body);font-weight:400;font-size:var(--fs-xs);color:var(--ink-2)}
.card-tour--dark{background:var(--ink);color:#fff;border-color:rgba(255,255,255,.14)}
.card-tour--dark:hover{border-color:rgba(235,217,153,.5)}
.card-tour--dark .card-tour__foot{border-top-color:rgba(255,255,255,.2)}
.card-tour--dark .card-tour__price small,.card-tour--dark .meta-row{color:rgba(255,255,255,.75)}
.card-tour--dark .card-tour__title a:hover{color:var(--buff)}
.card-tour--dark .tag{background:transparent;color:#fff;border-color:rgba(255,255,255,.32)}
.card-tour--dark .tag--cat{background:var(--buff);border-color:var(--buff);color:var(--ink)}
.card-tour--dark .tag--orange{background:var(--orange);border-color:var(--orange);color:#fff}

/* 紙のカード（購読・Get in touch・情報） */
.card-paper{position:relative;background:var(--paper);border-radius:var(--radius);padding:38px 34px;border-top:6px solid var(--orange);box-shadow:-6px 0 0 var(--ink)}
.card-paper--plain{border-top:0;box-shadow:none}
@media (max-width:767px){.card-paper{padding:28px 22px}}

/* 写真カード（会社概要3×3など：下グラデ＋筆記体） */
.card-photo{position:relative;display:block;border-radius:var(--radius);overflow:hidden;color:#fff;box-shadow:var(--shadow-card);transition:box-shadow var(--t-mid),transform var(--t-mid)}
.card-photo:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}
.card-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform var(--t-slow) var(--ease)}
.card-photo:hover img{transform:scale(1.04)}
.card-photo__grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,35,43,0) 45%,rgba(27,35,43,.85) 100%)}
.card-photo__body{position:absolute;left:0;right:0;bottom:0;padding:22px 22px 20px}
.card-photo__title{font-family:var(--font-script);font-size:34px;line-height:1.1}
.card-photo__more{display:block;margin-top:6px;font-size:var(--fs-small);font-weight:700}
.card-photo__more::after{content:" \203A\203A"}

/* バフの紙フレーム */
.paper-frame{position:relative;display:block;padding:8px;background:var(--buff);border-radius:3px}
.paper-frame img{width:100%;object-fit:cover;border-radius:2px}
.paper-frame--tilt{transform:rotate(-1deg)}

/* ---------- 帯（破れ紙エッジ） ---------- */
.band{position:relative;padding:var(--sec-pt) 0 var(--sec-pb)}
.band--olive{background:var(--olive);color:#fff}
.band--ink{background:var(--ink);color:#fff}
.band--paper{background:var(--paper);color:var(--ink)}
.band--buff{background:var(--buff);color:var(--ink)}
.band--torn-top::before,.band--torn-bottom::after{content:"";position:absolute;left:0;right:0;height:28px;background-repeat:repeat-x;background-size:600px 28px;pointer-events:none}
.band--torn-top::before{top:-27px;background-position:bottom}
.band--torn-bottom::after{bottom:-27px;transform:scaleY(-1);background-position:bottom}
.band--olive.band--torn-top::before,.band--olive.band--torn-bottom::after{background-image:var(--torn-olive)}
.band--ink.band--torn-top::before,.band--ink.band--torn-bottom::after{background-image:var(--torn-ink)}
.band--paper.band--torn-top::before,.band--paper.band--torn-bottom::after{background-image:var(--torn-paper)}
.band--buff.band--torn-top::before,.band--buff.band--torn-bottom::after{background-image:var(--torn-buff)}
.band--torn-top{margin-top:27px}
.band--torn-bottom{margin-bottom:27px}
.band .btn--outline-light,.band .link{color:var(--buff)}
.band .link{box-shadow:0 2px 0 var(--buff)}

/* ---------- ヘッダー（告知バー＋ナビ・追従なし） ---------- */
.site-header{position:relative;z-index:50;background:var(--white)}
.topbar{background:var(--olive);color:rgba(255,255,255,.9)}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:var(--container);margin:0 auto;padding:9px var(--gutter)}
.topbar p{margin:0}
.topbar__claim{font-size:var(--fs-xs);letter-spacing:.09em}
.topbar__meta{display:flex;align-items:center;gap:18px;font-size:var(--fs-xs);letter-spacing:.05em;white-space:nowrap}
.topbar__meta a{font-weight:700;color:var(--buff)}
.topbar__meta a:hover{color:#fff}
.topbar__meta span{position:relative;padding-right:18px}
.topbar__meta span::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:1px;height:11px;background:rgba(255,255,255,.3)}
@media (max-width:767px){.topbar__meta span{display:none}.topbar__claim{font-size:10px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__inner{gap:12px;padding:8px var(--gutter)}}
.nav{display:flex;align-items:center;gap:32px;max-width:var(--container);margin:0 auto;padding:16px var(--gutter);min-height:95px}
.nav__logo{display:block}
/* ---------- ブランドロゴ（山＝三角＋橙の水平線＋三本の反射） ---------- */
.brand{display:inline-flex;align-items:center;gap:13px;color:var(--ink)}
.brand__mark{display:block;flex:none;line-height:0}
.brand__mark svg{display:block;overflow:visible}
.brand__water{stroke:var(--orange)}
.brand__text{display:block}
.brand__en{display:block;font-family:var(--font-serif);font-weight:500;font-size:21px;letter-spacing:.2em;line-height:1;white-space:nowrap}
.brand__ja{display:block;margin-top:6px;font-family:var(--font-body);font-weight:500;font-size:10px;letter-spacing:.34em;line-height:1;color:var(--olive);white-space:nowrap}
.brand:hover .brand__water{stroke:var(--orange-2)}
.site-footer .brand{color:#fff}
.site-footer .brand__water{stroke:var(--buff)}
.site-footer .brand__ja{color:var(--buff)}
@media (max-width:1023px){
  .brand{gap:10px}
  .brand__mark svg{width:34px;height:32px}
  .brand__en{font-size:18px;letter-spacing:.18em}
  .brand__ja{font-size:9px;letter-spacing:.3em;margin-top:5px}
}
@media (max-width:400px){
  .brand{gap:8px}
  .brand__mark svg{width:29px;height:28px}
  .brand__en{font-size:16px;letter-spacing:.14em}
  .brand__ja{font-size:8px;letter-spacing:.26em}
}
.nav__links{display:flex;gap:26px;margin-left:8px}
.nav__link{font-weight:700;font-size:16px;padding:6px 0;position:relative}
.nav__link::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--orange);opacity:0;transition:opacity var(--t-fast)}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{opacity:1}
.nav__right{margin-left:auto;display:flex;align-items:center;gap:22px}
.nav__phone{font-weight:700;font-size:15px;display:inline-flex;align-items:center;gap:6px}
.nav__cta{color:var(--orange-text);font-weight:700}
.nav__cta:hover{color:var(--orange-2)}
.nav__toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--line-strong)}
.nav__toggle span{position:relative;display:block;width:20px;height:2px;background:var(--ink)}
.nav__toggle span::before,.nav__toggle span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink);transition:transform var(--t-mid)}
.nav__toggle span::before{top:-6px}.nav__toggle span::after{top:6px}
.nav__toggle[aria-expanded="true"] span{background:transparent}
.nav__toggle[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:1023px){
  .nav{gap:14px;min-height:74px;padding:12px var(--gutter)}
  .nav__links,.nav__phone{display:none}
  .brand{order:1}
  .nav__right{order:2;gap:16px}
  .nav__toggle{display:inline-flex;order:3}
  /* パネルはヘッダー直下に絶対配置＝行に割り込ませない・幅は必ずビューポート全幅 */
  .nav__panel{position:absolute;left:0;right:0;top:100%;display:none;padding:0 var(--gutter);background:var(--paper);border-top:1px solid var(--hairline);box-shadow:0 20px 34px -22px rgba(27,35,43,.5)}
  .nav__panel.is-open{display:block}
  .nav__panel .nav__links{display:flex;flex-direction:column;gap:0;margin:0;padding:4px 0 20px}
  .nav__panel .nav__link{padding:15px 2px;border-bottom:1px solid var(--hairline);font-size:16px;letter-spacing:.04em}
  .nav__panel .nav__link::after{display:none}
  .nav__panel .nav__phone{display:inline-flex;margin:0 0 16px}
  .nav__panel .btn{display:flex;width:100%;margin:0 0 22px}
}
@media (min-width:1024px){.nav__panel{display:contents}.nav__panel .btn,.nav__panel .nav__phone{display:none}}
.nav__cta{white-space:nowrap}
@media (max-width:520px){.nav__right .nav__cta{font-size:14px}}
.nb{display:inline-block}

/* ==========================================================================
   ヒーロー（動画4本のローテーション）＋ ツアー検索バー
   構成：全画面の映像 → 内側に細い枠 → 左下に組んだ見出し → 右下にインジケーター
   　　　→ 下端で検索バーが重なる
   ========================================================================== */
.hero{position:relative;isolation:isolate;min-height:640px;min-height:min(100svh - 96px,840px);display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:var(--ink);overflow:hidden}

/* --- 映像レイヤー --- */
.hero__stage{position:absolute;inset:0;z-index:0}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.hero__slide.is-active{opacity:1}
.hero__slide video,.hero__slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero__slide.is-active video{animation:heroDrift 9s linear both}
@keyframes heroDrift{from{transform:scale(1.02)}to{transform:scale(1.075)}}
.no-js .hero__slide:first-child{opacity:1}

/* 上＝ヘッダー可読性のための薄い墨、下＝文字のための濃い墨。左からも軽く落とす */
.hero__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(27,35,43,.5) 0%,rgba(27,35,43,.1) 24%,rgba(27,35,43,0) 44%),
    linear-gradient(0deg,rgba(27,35,43,.6) 0%,rgba(27,35,43,.22) 26%,rgba(27,35,43,0) 54%),
    radial-gradient(80% 66% at 50% 47%,rgba(27,35,43,.54) 0%,rgba(27,35,43,.24) 54%,rgba(27,35,43,0) 80%)}

/* 内側の細い枠（高級ホテル・観光局サイトの定番。画面に額をかける） */
.hero__frame{position:absolute;z-index:2;inset:22px;border:1px solid rgba(255,255,255,.28);pointer-events:none}
@media (max-width:767px){.hero__frame{inset:12px}}

/* --- 見出し（左下・非対称） --- */
.hero__inner{position:relative;z-index:3;width:100%;max-width:940px;margin:0 auto;padding:126px var(--gutter) 148px}
.hero__eyebrow{display:flex;align-items:center;justify-content:center;gap:16px;font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--buff);margin-bottom:6px;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.hero__eyebrow::before,.hero__eyebrow::after{content:"";width:46px;height:1px;background:currentColor;opacity:.75;flex:none}
.hero__eyebrow::before{content:"";width:52px;height:1px;background:var(--buff);flex:none}
.hero__title{margin:0 0 18px}
.hero__title-en{display:block;font-family:var(--font-script);font-weight:400;font-size:var(--script-hero);line-height:1.08;letter-spacing:0;text-shadow:0 4px 40px rgba(0,0,0,.34)}
.hero__title-en.squiggle{padding-bottom:.14em}
.hero__title-en.squiggle::after{left:6%;right:6%;height:.15em;opacity:.6}
.hero__title-ja{display:block;margin-top:20px;font-family:var(--font-serif);font-weight:500;font-size:clamp(19px,1.85vw,27px);line-height:1.75;letter-spacing:.06em;text-shadow:0 2px 22px rgba(0,0,0,.42)}
.hero__title .nb{display:inline-block}
.hero__lead{max-width:640px;margin:0 auto 32px;font-size:15px;line-height:1.95;letter-spacing:.04em;color:rgba(255,255,255,.86);text-shadow:0 1px 16px rgba(0,0,0,.5)}
.hero__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 32px}

/* --- インジケーター（右下・番号＋進行バー） --- */
.hero-nav{position:absolute;z-index:3;right:calc(var(--gutter) + 58px);bottom:146px;display:flex;align-items:center;gap:14px}
.hero-nav__item{position:relative;width:44px;height:32px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:9px;font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.5);transition:color var(--t-fast)}
.hero-nav__item::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.28)}
.hero-nav__item::before{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--buff);z-index:1}
.hero-nav__item:hover,.hero-nav__item.is-active{color:#fff}
.hero-nav.is-ticking .hero-nav__item.is-active::before{animation:heroTick 5s linear both}
@keyframes heroTick{from{width:0}to{width:100%}}
@media (max-width:1023px){.hero-nav{right:calc(var(--gutter) + 16px);bottom:120px}.hero-nav__item{width:34px}}
@media (max-width:767px){.hero-nav{bottom:auto;top:22px;right:22px;gap:8px}.hero-nav__item{width:22px;height:22px;padding:0;font-size:0}
  .hero-nav__item::after{top:50%;bottom:auto;transform:translateY(-50%)}.hero-nav__item::before{top:50%;bottom:auto;transform:translateY(-50%)}}

/* --- スクロール指示子（左下の細い縦線） --- */
.hero__cue{position:absolute;z-index:3;left:calc(var(--gutter) + 2px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;font-family:var(--font-body);font-weight:700;font-size:10px;letter-spacing:.26em;color:rgba(255,255,255,.72);writing-mode:vertical-rl;transition:opacity var(--t-slow)}
.hero__cue::after{content:"";width:1px;height:56px;background:linear-gradient(180deg,rgba(255,255,255,.65),rgba(255,255,255,0))}
.hero__cue.is-gone{opacity:0}
@media (max-width:1023px){.hero__cue{display:none}}

@media (max-width:767px){
  .hero{min-height:560px;min-height:min(94svh,700px)}
  .hero__inner{padding:104px var(--gutter) 118px}
  .hero__lead{font-size:14px;line-height:1.9;margin-bottom:26px}
  .hero__title-ja{margin-top:14px;line-height:1.8}
  .hero__eyebrow{font-size:9px;letter-spacing:.2em;gap:10px}
  .hero__eyebrow::before,.hero__eyebrow::after{width:22px}
  .hero__actions{flex-direction:column;gap:16px}
  .hero__actions .btn{width:100%;max-width:300px}
}

/* --- 検索バー（ヒーロー下端に重ねる・帳票に見せない） --- */
.finder{position:relative;z-index:4;max-width:1020px;margin:-46px auto 0;background:var(--white);border:1px solid var(--line);box-shadow:0 18px 44px -22px rgba(27,35,43,.42);display:grid;grid-template-columns:max-content minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.3fr) max-content;align-items:stretch}
.finder__title{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:20px 26px;border-right:1px solid var(--line);white-space:nowrap}
.finder__title b{font-family:var(--font-serif);font-weight:500;font-size:17px;letter-spacing:.06em}
.finder__title span{font-family:var(--font-script);font-size:17px;line-height:1;color:var(--olive)}
.finder__field{display:flex;flex-direction:column;justify-content:center;gap:7px;padding:16px 22px;border-right:1px solid var(--line);min-width:0}
.finder__label{font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--olive)}
.finder__select{width:100%;max-width:100%;appearance:none;-webkit-appearance:none;background:transparent var(--chev) no-repeat right center/13px;border:0;padding:0 20px 0 0;font-family:var(--font-serif);font-weight:500;font-size:16px;color:var(--ink);cursor:pointer;text-overflow:ellipsis}
.finder__btn{display:flex;align-items:center;padding:0 18px}
.finder__submit{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--orange);color:#fff;transition:background-color var(--t-fast),transform var(--t-fast)}
.finder__submit:hover{background:var(--orange-2);transform:translateY(-1px)}
.finder__submit svg{width:19px;height:19px}
@media (max-width:1023px){
  .finder{grid-template-columns:1fr 1fr;margin:-34px var(--gutter) 0}
  .finder__title{grid-column:1/-1;flex-direction:row;align-items:baseline;gap:12px;border-right:0;border-bottom:1px solid var(--line);padding:16px 22px}
  .finder__field:nth-of-type(3){border-right:0}
  .finder__field:nth-of-type(4){grid-column:1/-1;border-right:0;border-top:1px solid var(--line)}
  .finder__btn{grid-column:1/-1;border-top:1px solid var(--line);padding:14px 22px}
  .finder__submit{width:100%;border-radius:var(--pill);gap:10px;font-family:var(--font-serif);font-weight:700;font-size:16px}
  .finder__submit .finder__submit-txt{display:inline}
}
@media (min-width:1024px){.finder__submit-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}}
@media (max-width:767px){
  .finder{grid-template-columns:1fr}
  .finder__field,.finder__field:nth-of-type(3){border-right:0;border-bottom:1px solid var(--line)}
  .finder__field:nth-of-type(4){border-top:0}
}

/* 下層のページ見出し（筆記体h1＋スクイグル／暗い写真版） */
.page-head{position:relative;text-align:center;padding:52px var(--gutter) 40px}
.page-head__title{display:inline-block;margin:0 auto 14px}
.page-head__sub{font-family:var(--font-serif);font-weight:700;font-size:var(--h-sm);line-height:1.5}
.page-head__lead{max-width:var(--text);margin:18px auto 0;color:var(--ink-2)}
.page-head--dark{color:#fff;padding:120px var(--gutter) 90px;background:#333;overflow:hidden}
.page-head--dark .page-head__media{position:absolute;inset:0}
.page-head--dark .page-head__media img{width:100%;height:100%;object-fit:cover}
.page-head--dark .page-head__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,35,43,.55),rgba(27,35,43,.35))}
.page-head--dark > *:not(.page-head__media){position:relative;z-index:1}
.page-head--dark .page-head__lead{color:rgba(255,255,255,.85)}
.crumbs{font-size:var(--fs-xs);color:var(--ink-2);padding:14px 0 0}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"\203A";margin-right:6px}
.crumbs a:hover{color:var(--orange-text)}
.page-head--dark .crumbs{color:rgba(255,255,255,.8)}

/* ---------- アコーディオン・タブ・タイムライン・表 ---------- */
.acc{border-top:1px solid var(--hairline)}
.acc__item{border-bottom:1px solid var(--hairline)}
.acc__btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 4px;text-align:left;font-weight:700;font-size:16px;line-height:1.5}
.acc__btn:hover{color:var(--orange-text)}
.acc__icon{flex:none;width:22px;height:22px;position:relative}
.acc__icon::before,.acc__icon::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;transform:translate(-50%,-50%);transition:transform var(--t-mid)}
.acc__icon::before{width:14px;height:2px}
.acc__icon::after{width:2px;height:14px}
.acc__btn[aria-expanded="true"] .acc__icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--t-mid) ease}
.acc__panel > div{overflow:hidden}
.acc__btn[aria-expanded="true"] + .acc__panel{grid-template-rows:1fr}
.acc__body{padding:0 4px 20px;color:var(--ink-2)}
.tabs__nav{display:flex;border-bottom:2px solid var(--line);gap:0;overflow-x:auto}
.tabs__btn{flex:none;padding:12px 18px 10px;font-weight:700;font-size:16px;color:var(--ink-2);border-bottom:3px solid transparent;margin-bottom:-2px;transition:color var(--t-fast),border-color var(--t-fast)}
.tabs__btn:hover{color:var(--orange-text)}
.tabs__btn[aria-selected="true"]{color:var(--orange-text);border-bottom-color:var(--orange)}
.tabs__panel{padding-top:22px}
.tabs__panel[hidden]{display:none}
.tabs--boxed .tabs__nav{border:0;background:var(--ink);border-radius:6px 6px 0 0;overflow:hidden}
.tabs--boxed .tabs__btn{flex:1;text-align:center;color:#fff;margin:0;border:0;padding:14px 12px;font-size:15px}
.tabs--boxed .tabs__btn[aria-selected="true"]{background:var(--white);color:var(--ink);box-shadow:inset 0 -3px 0 var(--orange)}
.timeline{position:relative;padding-left:44px}
.timeline::before{content:"";position:absolute;left:12px;top:8px;bottom:8px;width:2px;background:var(--line)}
.timeline__item{position:relative;padding:0 0 26px}
.timeline__item::before{content:"";position:absolute;left:-39px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--paper);border:3px solid var(--orange)}
.timeline__day{font-family:var(--font-script);font-size:var(--script-day);line-height:1;color:var(--day);margin-bottom:6px}
.timeline__time{display:inline-block;font-weight:700;color:var(--orange-text);margin-right:10px;font-size:var(--fs-small);letter-spacing:.04em}
.timeline__title{font-family:var(--font-serif);font-weight:700;font-size:18px;line-height:1.5}
.timeline__body{color:var(--ink-2);margin-top:6px}
.table{font-size:15px;background:var(--white);border:1px solid var(--hairline);border-radius:var(--radius-sm);overflow:hidden}
.table th,.table td{padding:12px 14px;border-bottom:1px solid var(--line)}
.table tr:last-child th,.table tr:last-child td{border-bottom:0}
.table thead th{background:var(--ink);color:#fff;font-weight:700;font-size:var(--fs-small)}
.table tbody th{background:var(--paper);font-weight:700;white-space:nowrap}
.table--price td{text-align:right;font-family:var(--font-serif);font-weight:700}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.info-card{background:var(--paper);border-radius:var(--radius);padding:34px 32px}
.info-card dl{margin:0}
.info-card dt{font-weight:700;color:var(--orange-text);margin-top:14px}
.info-card dt:first-child{margin-top:0}
.info-card dd{margin:2px 0 0;font-family:var(--font-serif);font-weight:700;font-size:17px}
.info-card dd.small{font-family:var(--font-body);font-weight:400;font-size:var(--fs-small);color:var(--ink-2)}
.dl-table{display:grid;grid-template-columns:160px 1fr;border-top:1px solid var(--line)}
.dl-table dt,.dl-table dd{margin:0;padding:14px 12px;border-bottom:1px solid var(--line)}
.dl-table dt{font-weight:700;background:var(--paper)}
@media (max-width:767px){.dl-table{grid-template-columns:1fr}.dl-table dt{border-bottom:0;padding-bottom:4px}}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px}
@media (max-width:767px){.two-col{grid-template-columns:1fr}}

/* ---------- フォーム（疑似送信） ---------- */
.form__row{margin-bottom:20px}
.form__label{display:block;font-weight:700;font-size:14px;letter-spacing:.05em;margin-bottom:9px}
.form__label .req{color:var(--orange-text);margin-left:4px}
.form__input,.form__textarea,.form__select{width:100%;font:inherit;color:var(--ink);background:var(--white);border:1px solid var(--line-strong);border-radius:2px;padding:14px 16px;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.form__select{appearance:none;-webkit-appearance:none;background:var(--white) var(--chev) no-repeat right 12px center/14px;padding-right:36px}
.form__input:focus,.form__textarea:focus,.form__select:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(182,95,4,.16)}
.form__textarea{min-height:160px;resize:vertical}
.form__check{display:flex;align-items:flex-start;gap:10px;font-size:15px}
.form__check input{width:18px;height:18px;margin-top:3px;accent-color:var(--orange)}
.form__note{font-size:var(--fs-small);color:var(--ink-2)}
.form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__steps{display:flex;gap:0;margin-bottom:30px;border:1px solid var(--hairline);overflow:hidden}
.form__step{flex:1;text-align:center;padding:11px 8px;font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--ink-2)}
.form__step.is-current{background:var(--orange);color:#fff}
.form__step.is-done{background:var(--paper)}
.confirm-list{border-top:1px solid var(--line)}
.confirm-list div{display:grid;grid-template-columns:160px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.confirm-list dt{font-weight:700;color:var(--orange-text)}
.confirm-list dd{margin:0;white-space:pre-wrap}
@media (max-width:767px){.confirm-list div{grid-template-columns:1fr;gap:4px}}

/* ---------- ギャラリー・ライトボックス ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gallery a,.gallery figure{display:block;margin:0;border-radius:6px;overflow:hidden;background:var(--paper)}
.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform var(--t-slow) var(--ease)}
.gallery a:hover img{transform:scale(1.04)}
.gallery--wide img{aspect-ratio:4/3}
@media (max-width:1023px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media (max-width:767px){.gallery{grid-template-columns:repeat(2,1fr);gap:8px}}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(27,35,43,.92);display:none;align-items:center;justify-content:center;padding:24px}
.lightbox.is-open{display:flex}
.lightbox img{max-width:min(1200px,100%);max-height:86vh;max-height:86svh;width:auto;height:auto;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.lightbox__close{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;background:var(--paper);color:var(--ink);font-size:26px;line-height:1}
.lightbox__cap{position:absolute;left:0;right:0;bottom:22px;text-align:center;color:#fff;font-family:var(--font-script);font-size:26px}

/* ---------- 共通CTA帯・フッター ---------- */
.cta-band{text-align:center}
.cta-band .card-paper{max-width:820px;margin:0 auto;text-align:center;color:var(--ink)}
.cta-band__title{display:inline-block;margin-bottom:14px}
.cta-band__txt{max-width:600px;margin:0 auto 22px;color:var(--ink-2)}
.site-footer{background:var(--olive);color:#fff}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr .9fr;gap:36px 28px;padding:64px 0 40px}
.footer__brand .nav__logo{color:#fff}
.footer__brand .nav__logo small{color:var(--buff)}
.footer__addr{margin-top:16px;font-size:var(--fs-small);line-height:1.9;font-style:normal;color:rgba(255,255,255,.88)}
.footer__title{font-weight:700;font-size:15px;margin-bottom:14px;color:var(--buff)}
.footer__col li{margin-bottom:8px;font-size:var(--fs-small)}
.footer__col a:hover{color:var(--buff)}
.footer__social{display:flex;gap:10px}
.footer__social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--buff);color:var(--buff)}
.footer__social a:hover{background:var(--buff);color:var(--ink)}
.footer__social svg{width:18px;height:18px;fill:currentColor}
.footer__cta{text-align:center;padding:8px 0 56px}
.footer__credit{background:var(--paper);color:var(--ink-2);font-size:var(--fs-xs);text-align:center;padding:14px var(--gutter);line-height:1.8}
.footer__credit a:hover{color:var(--orange-text)}
@media (max-width:1023px){.footer__grid{grid-template-columns:1fr 1fr 1fr;padding:52px 0 32px}.footer__brand{grid-column:1/-1}}
@media (max-width:767px){.footer__grid{grid-template-columns:1fr 1fr;gap:28px 20px}}

/* ---------- 出現（opacityのみ・静かに） ---------- */
.fade{opacity:0;transition:opacity var(--fade) ease}
.fade.is-in{opacity:1}
.fade-d1{transition-delay:.12s}.fade-d2{transition-delay:.24s}.fade-d3{transition-delay:.36s}
.no-js .fade{opacity:1}
