/*
 * YAMAZEN トップページ（2026年改修）
 * front-page.php 専用。functions.php の yamazen_top2026_assets() で読み込み
 *
 * Layout: 黒の濃淡と余白で章を分ける。見出しは1行ずつ下からせり上がる。金は文字と細い枠だけ */
:root{
  --black:#000000;
  --night:#0b0b0a;
  --coal:#141413;
  --card:#1b1a18;
  --white:#ffffff;
  --text:#efebe3;
  --sub:#d3cdc2;
  --gold:#c9a45c;
  --gold-hi:#e2c27f;
  --f-mincho:"Shippori Mincho","游明朝","Yu Mincho","Hiragino Mincho ProN",serif;
  --f-latin:"Cormorant Garamond","Times New Roman",Georgia,serif;
  --gutter:clamp(20px,5vw,80px);
  --max:1280px;
  --ease:cubic-bezier(.22,.8,.2,1);
  --ease-io:cubic-bezier(.77,0,.18,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0}
.admin-bar .hd{top:32px}
@media (max-width:782px){.admin-bar .hd{top:46px}}
[hidden]{display:none!important}
html{scroll-behavior:smooth;overflow-x:clip}
body{background:var(--black);color:var(--text);font-family:var(--f-mincho);font-size:19px;line-height:2.2;letter-spacing:.07em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:500;color:var(--white)}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.ln{display:inline-block;white-space:nowrap}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}

/* 1行ずつせり上がる文字 */
.line{display:block;padding-block:.08em;clip-path:inset(-.5em -100vw 0 -100vw)}
.line__in{display:inline-block;white-space:nowrap;transition:transform 1.3s var(--ease);transition-delay:calc(var(--l) * .16s)}
.lines.pre .line__in{transform:translateY(115%)}

/* 見出し */
.ttl{text-align:center;margin-bottom:clamp(60px,7vw,100px)}
.ttl__en{display:block;font-family:var(--f-latin);font-style:italic;font-size:clamp(17px,1.5vw,20px);letter-spacing:.14em;color:var(--gold);line-height:1}
.ttl h2{font-size:clamp(32px,4.4vw,58px);letter-spacing:.14em;line-height:1.5;margin-top:22px}
.ttl p{margin:32px auto 0;max-width:34em;color:var(--sub);font-size:clamp(18px,1.7vw,21px);line-height:2.4}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;min-width:280px;padding:21px 40px;border:1px solid rgba(255,255,255,.6);color:var(--white);font-size:16px;letter-spacing:.2em;position:relative;overflow:hidden;isolation:isolate;transition:color .6s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--white);clip-path:inset(0 50% 0 50%);transition:clip-path .7s var(--ease-io);z-index:-1}
.btn:hover{color:var(--black)}
.btn:hover::before{clip-path:inset(0 0 0 0)}
.btn--gold{border-color:var(--gold);color:var(--gold-hi)}
.btn--gold::before{background:var(--gold)}
.btns{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}

/* ================= オープニング ================= */
.op{position:fixed;inset:0;z-index:101;background:var(--black);overflow:hidden;transition:transform 1.3s var(--ease-io)}
.op.lift{transform:translateY(-101%)}
/* 1. 筆文字が上から書かれるように現れる */
.op__brush{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:min(44vh,360px);display:flex;flex-direction:column;align-items:center;transition:opacity .7s ease,transform 1s var(--ease)}
.op__brush img{width:100%;clip-path:inset(0 0 100% 0);transition:clip-path 1.5s var(--ease-io)}
.op__brush p{margin-top:28px;font-size:clamp(17px,1.8vw,22px);letter-spacing:.5em;padding-left:.5em;color:var(--white);white-space:nowrap}
.op.s1 .op__brush img{clip-path:inset(0 0 0 0)}
.op.s2 .op__brush{opacity:0;transform:translate(-50%,-50%) scale(1.08)}
/* 2. 写真が3枚、縦にせり上がる */
.op__tri{position:absolute;inset:0}
.op__tri div{position:absolute;top:0;bottom:0;width:calc(33.333% - 4px);overflow:hidden;clip-path:inset(100% 0 0 0);transition:clip-path 1.2s var(--ease-io),left 1.6s var(--ease-io),width 1.6s var(--ease-io),top 1.6s var(--ease-io),height 1.6s var(--ease-io),transform 1.6s var(--ease-io)}
.op__tri div:nth-child(1){left:0}
.op__tri div:nth-child(2){left:calc(33.333% + 2px);transition-delay:.14s}
.op__tri div:nth-child(3){left:calc(66.666% + 4px);transition-delay:.28s}
.op__tri img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.3);transition:transform 4.5s var(--ease)}
.op.s2 .op__tri div{clip-path:inset(0 0 0 0)}
.op.s2 .op__tri img{transform:scale(1.05)}
.op__tri::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,0);transition:background 1.2s ease}
.op.s3 .op__tri::after{background:rgba(0,0,0,.42)}
.op.s4 .op__tri div{transition-delay:0s}
.op.s4 .op__tri div:nth-child(1){transform:translateX(-112%)}
.op.s4 .op__tri div:nth-child(3){transform:translateX(112%)}
.op.s4 .op__tri div:nth-child(2){left:0;width:100%}
.op.s4 .op__tri::after{background:rgba(0,0,0,.12)}
.op.s4 .op__logo{opacity:0;transform:scale(1.06)}
.op.out{opacity:0;transition:opacity 1.1s ease}
/* 3. ロゴ */
.op__logo{transition:opacity 1s ease,transform 1.4s var(--ease);position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:2;pointer-events:none}
.op__logo b{display:flex;font-family:var(--f-latin);font-weight:400;font-size:clamp(46px,8vw,118px);letter-spacing:.42em;padding-left:.42em;color:var(--white);line-height:1.1;text-shadow:0 4px 40px rgba(0,0,0,.5)}
.op__logo b span{display:block;overflow:hidden}
.op__logo b i{display:block;font-style:normal;transform:translateY(110%);transition:transform 1.1s var(--ease);transition-delay:calc(var(--i) * .07s)}
.op.s3 .op__logo b i{transform:none}
.op__logo small{display:block;overflow:hidden;margin-top:26px}
.op__logo small span{display:block;font-size:clamp(16px,1.6vw,20px);letter-spacing:.4em;padding-left:.4em;color:var(--white);transform:translateY(110%);transition:transform 1.1s var(--ease) .55s;text-shadow:0 2px 20px rgba(0,0,0,.6)}
.op.s3 .op__logo small span{transform:none}
.op__skip{all:unset;position:absolute;z-index:3;right:var(--gutter);bottom:calc(28px + env(safe-area-inset-bottom,0px));font-family:var(--f-latin);font-style:italic;font-size:17px;letter-spacing:.1em;color:rgba(255,255,255,.8);cursor:pointer;padding:10px}
.op__skip:hover{color:var(--gold-hi)}

/* ================= ヘッダー ================= */
.hd{position:fixed;inset-inline:0;top:0;z-index:60;padding-top:env(safe-area-inset-top,0px);color:var(--white);transition:background .6s,opacity 1.2s,transform 1.2s var(--ease);background:linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,0))}
.js .hd{opacity:0;transform:translateY(-20px)}
.is-ready .hd{opacity:1;transform:none}
.hd__in{max-width:1480px;margin-inline:auto;display:flex;align-items:center;gap:28px;padding:24px var(--gutter);transition:padding .5s var(--ease)}
.logo{display:flex;flex-direction:column;line-height:1}
.logo b{font-family:var(--f-latin);font-weight:500;font-size:30px;letter-spacing:.36em}
.logo small{font-size:11px;letter-spacing:.3em;margin-top:9px;color:var(--gold-hi)}
.nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,38px);margin-left:auto}
.nav a{display:flex;flex-direction:column;align-items:center;line-height:1.3;text-shadow:0 1px 10px rgba(0,0,0,.6);transition:color .3s}
.nav a span{font-size:16.5px;letter-spacing:.14em}
.nav a small{font-family:var(--f-latin);font-style:italic;font-size:13px;letter-spacing:.08em;color:var(--gold);margin-top:3px;transition:color .3s}
.nav a:hover,.nav a.is-current{color:var(--gold-hi)}
.nav .nav__cta{margin-left:6px;padding:12px 24px;border:1px solid var(--gold);text-shadow:none;transition:background .4s,color .4s}
.nav .nav__cta:hover{background:var(--gold);color:var(--black)}
.nav .nav__cta:hover small{color:var(--black)}
.lang{display:flex;gap:12px;font-family:var(--f-latin);font-size:15px;letter-spacing:.12em;color:rgba(255,255,255,.7)}
.lang b{color:var(--gold-hi);font-weight:500}
.hd.is-fixed{background:rgba(0,0,0,.84);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.hd.is-fixed .hd__in{padding-block:13px}
.menu-btn{display:none;margin-left:auto;width:54px;height:54px;background:none;border:0;color:inherit;cursor:pointer;position:relative;z-index:2}
.menu-btn i{position:absolute;left:13px;right:13px;height:1px;background:currentColor;transition:transform .4s var(--ease)}
.menu-btn i:nth-child(1){top:22px}.menu-btn i:nth-child(2){top:31px}
.menu-open .menu-btn i:nth-child(1){transform:translateY(4.5px) rotate(30deg)}
.menu-open .menu-btn i:nth-child(2){transform:translateY(-4.5px) rotate(-30deg)}
.drawer{position:fixed;inset:0;z-index:55;background:rgba(5,5,5,.98);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;text-align:center;padding:90px 20px 40px}
.drawer a{display:flex;flex-direction:column;line-height:1.45;opacity:0;transform:translateY(16px);animation:upIn .7s var(--ease) forwards;animation-delay:calc(var(--i) * .06s)}
.drawer a span{font-size:23px;letter-spacing:.2em;color:var(--white)}
.drawer a small{font-family:var(--f-latin);font-style:italic;font-size:14px;letter-spacing:.1em;color:var(--gold)}
.drawer .lang{margin-top:18px;font-size:16px}
@keyframes upIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes fadeIn{to{opacity:1}}

/* ================= FV ================= */
.hero{position:relative;height:100vh;height:100svh;min-height:620px;max-height:1100px;overflow:hidden;background:var(--black);color:var(--white)}
.hero__base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6)}
.slides{position:absolute;inset:0;transition:transform 1.2s var(--ease)}
.slide{position:absolute;inset:0;z-index:0}
.slide.is-prev{z-index:1}
.slide.is-active{z-index:2}
.kb{position:absolute;inset:0}
.slide.is-active .kb{animation:kb 9s linear forwards}
.slide.is-prev .kb{animation:kbOut 2.2s ease forwards}
@keyframes kb{from{transform:scale(1.14) translateX(1.5%)}to{transform:scale(1.02) translateX(0)}}
@keyframes kbOut{from{transform:scale(1.02);filter:brightness(1)}to{transform:scale(1.08);filter:brightness(.5)}}
.strip{position:absolute;inset:0;clip-path:inset(0 var(--r) 100% var(--l));transition:clip-path 1.6s var(--ease-io) calc(var(--d) * .09s)}
.strip:nth-child(even){clip-path:inset(100% var(--r) 0 var(--l))}
.slide.is-active .strip,.slide.is-prev .strip{clip-path:inset(0 var(--r) 0 var(--l))}
.slide.no-anim .strip{transition:none}
.strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.hero__shade{position:absolute;inset:0;z-index:3;background:radial-gradient(ellipse at center,rgba(0,0,0,.4) 0%,rgba(0,0,0,.25) 70%),linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 65%,rgba(0,0,0,.75) 100%)}
.hero__body{transition:transform 1.2s var(--ease);position:relative;z-index:5;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:140px var(--gutter) 130px}
.hero__pre{font-size:clamp(18px,1.9vw,24px);letter-spacing:.22em;color:rgba(255,255,255,.95);text-shadow:0 2px 20px rgba(0,0,0,.6)}
.hero h1{margin-top:18px;font-size:clamp(34px,4.6vw,62px);letter-spacing:.14em;line-height:1.5;text-shadow:0 2px 40px rgba(0,0,0,.55)}
.hero .btns{margin-top:48px}
.js .hero .line__in{transform:translateY(115%)}
.is-ready .hero .line__in{transform:none;transition:transform 1.4s var(--ease);transition-delay:calc(.5s + var(--l) * .2s)}
.is-ready .hero h1 .line__in{transition-delay:calc(.8s + var(--l) * .2s)}
.js .hero .btns,.js .hero__place{opacity:0}
.is-ready .hero .btns{animation:upIn 1.2s var(--ease) 1.7s forwards}
.is-ready .hero__place{animation:fadeIn 1.4s ease 2s forwards}
.hero__place{position:absolute;right:var(--gutter);bottom:44px;z-index:6;font-size:16px;letter-spacing:.24em;text-align:right;line-height:1.6;color:rgba(255,255,255,.92);text-shadow:0 1px 12px rgba(0,0,0,.6);transition:opacity .6s}
.hero__place small{display:block;font-family:var(--f-latin);font-style:italic;font-size:15px;letter-spacing:.08em;color:var(--gold-hi)}
.hero__scroll{position:absolute;left:50%;bottom:0;z-index:6;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--f-latin);font-style:italic;font-size:15px;letter-spacing:.14em;color:rgba(255,255,255,.85)}
.hero__scroll i{width:1px;height:56px;background:rgba(255,255,255,.22);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:-100%;width:1px;height:100%;background:var(--white);animation:drop 2.4s var(--ease) infinite}
@keyframes drop{0%{top:-100%}60%,100%{top:100%}}

/* 取り扱い領域 */
.band{background:var(--night);padding:38px var(--gutter);text-align:center}
.band p{font-size:clamp(17px,1.7vw,21px);letter-spacing:.3em;color:var(--white);line-height:2}
.band i{font-style:normal;color:var(--gold);margin-inline:.6em}

/* ================= 共通 ================= */
.sec{padding-block:clamp(120px,14vw,200px);position:relative}
.sec--black{background:var(--black)}
.sec--night{background:var(--night)}
.sec--coal{background:var(--coal)}

/* 画像：小さく絞られた枠が広がり、ピントが合うように現れる（常に見えている） */
.pic{position:relative;overflow:hidden;max-width:100%;clip-path:inset(0 0 0 0);transition:clip-path 1.6s var(--ease-io)}
.pic img{width:100%;height:100%;object-fit:cover;transform:translate3d(0,var(--py,0px),0) scale(var(--s,1.1));filter:brightness(var(--b,1));transition:transform 1.9s var(--ease),filter 1.6s ease}
.pic.pre{clip-path:inset(7% 7% 7% 7%)}
.pic.pre img{--s:1.28;--b:.75}
.pic:hover img{--s:1.16}

.rv{transition:opacity 1.4s ease,transform 1.4s var(--ease)}
.rv.pre{opacity:0;transform:translateY(36px)}
.stagger>*{transition:opacity 1.3s ease,transform 1.3s var(--ease)}
.stagger.pre>*{opacity:0;transform:translateY(46px)}
.stagger>*:nth-child(2){transition-delay:.14s}.stagger>*:nth-child(3){transition-delay:.28s}.stagger>*:nth-child(4){transition-delay:.42s}.stagger>*:nth-child(5){transition-delay:.56s}

/* 信頼 */
.lead-big{text-align:center;font-size:clamp(25px,3.2vw,42px);letter-spacing:.14em;line-height:1.9;color:var(--white)}
.lead-big em{font-style:normal;color:var(--gold-hi)}
.lead-sub{text-align:center;margin:40px auto 0;max-width:32em;font-size:clamp(18px,1.7vw,21px);line-height:2.4;color:var(--sub)}
.vstats{display:flex;justify-content:center;gap:clamp(40px,9vw,140px);margin-top:clamp(80px,9vw,130px)}
.vstats div{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.vstats b{font-weight:500;font-size:clamp(34px,4vw,54px);letter-spacing:.2em;color:var(--white);line-height:1.2}
.vstats span{font-size:clamp(15px,1.3vw,17px);letter-spacing:.18em;color:var(--gold-hi);line-height:1.8}
.inds{margin-top:clamp(90px,10vw,140px);text-align:center}
.inds h3{font-family:var(--f-latin);font-style:italic;font-weight:400;font-size:19px;letter-spacing:.12em;color:var(--gold)}
.inds__t{margin-top:14px;font-size:clamp(18px,1.7vw,22px);letter-spacing:.14em;color:var(--sub)}
.inds__l{margin:34px auto 0;max-width:32em;font-size:clamp(20px,2.2vw,28px);letter-spacing:.12em;line-height:2.2;color:var(--white)}
.inds__l i{font-style:normal;color:var(--gold);margin-inline:.35em}

/* 体験設計 */
.svc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,1.8vw,28px)}
.svc__item{position:relative;aspect-ratio:4/5;color:var(--white);display:flex;flex-direction:column;justify-content:flex-end;text-align:center;padding:clamp(30px,4vw,60px) clamp(22px,3vw,50px)}
.svc__item .pic{position:absolute;inset:0;z-index:0}
.svc__item::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.45) 42%,rgba(0,0,0,0) 72%);pointer-events:none}
.svc__item>*:not(.pic){position:relative;z-index:2}
.svc__en{font-family:var(--f-latin);font-style:italic;font-size:19px;letter-spacing:.08em;color:var(--gold-hi)}
.svc__item h3{font-size:clamp(24px,2.3vw,33px);letter-spacing:.14em;margin-top:8px;line-height:1.5}
.svc__item p.d{margin:18px auto 0;max-width:22em;font-size:18.5px;line-height:2.15;color:rgba(255,255,255,.93)}
.svc__ex{margin-top:16px;font-size:15.5px;color:var(--gold-hi);letter-spacing:.1em;line-height:1.9}

/* 食のプロフェッショナル */
.xp{display:grid;gap:clamp(60px,7vw,110px)}
.xrow{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(20px,4vw,60px);max-width:1480px;margin-inline:auto;padding-inline:var(--gutter)}
.xrow--r .xrow__img{order:-1}
.xrow__txt{position:relative;z-index:2;text-shadow:0 0 8px rgba(0,0,0,.9),0 0 22px rgba(0,0,0,.8)}
.xrow__char{position:absolute;z-index:-1;top:-130px;left:clamp(160px,22vw,330px);width:clamp(220px,24vw,360px);height:auto;opacity:.17;pointer-events:none;transition:opacity 2.4s ease,clip-path 2s var(--ease-io);clip-path:inset(0 0 0 0)}
.xrow--r .xrow__char{left:auto;right:-40px}
.xrow.pre .xrow__char{opacity:0;clip-path:inset(0 0 100% 0)}
.xrow__no{font-family:var(--f-latin);font-style:italic;font-size:19px;letter-spacing:.08em;color:var(--gold)}
.xrow h3{font-size:clamp(38px,4.6vw,64px);letter-spacing:.1em;line-height:1.35;margin-top:14px}
.xrow__desc{font-size:clamp(19px,1.9vw,25px);color:var(--gold-hi);letter-spacing:.1em;margin-top:24px;line-height:1.8}
.xrow__body{font-size:clamp(18px,1.6vw,20px);line-height:2.35;margin-top:24px;max-width:26em}
.xrow__more{all:unset;cursor:pointer;display:inline-block;margin-top:32px;font-size:16px;letter-spacing:.18em;color:var(--gold-hi);transition:color .3s,letter-spacing .5s var(--ease)}
.xrow__more:hover{color:var(--white);letter-spacing:.24em}
.xrow__img{position:relative;max-width:100%}
.xrow__img img{width:100%;height:auto;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 72%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 72%,transparent 100%);transform:translate3d(0,var(--py,0px),0) scale(var(--s,1));transition:transform 2.2s var(--ease),filter 2s ease}
.xrow.pre .xrow__img img{--s:1.12;filter:brightness(.7)}

/* 実績 */
.cases{display:grid;gap:clamp(100px,12vw,170px)}
.case{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(30px,5vw,90px);align-items:center}
.case:nth-child(even) .pic{order:2}
.case .pic{aspect-ratio:4/3}
.case__b{text-align:center}
.case__no{display:block;font-size:clamp(17px,1.5vw,20px);letter-spacing:.4em;color:var(--gold-hi)}
.case__tag{font-family:var(--f-latin);font-style:italic;font-size:18px;letter-spacing:.08em;color:var(--gold);margin-top:6px}
.case h3{font-size:clamp(24px,2.6vw,34px);letter-spacing:.1em;line-height:1.75;margin-top:18px}
.case__txt{font-size:19px;line-height:2.3;margin:24px auto 0;max-width:22em;color:var(--sub)}
.case__meta{margin-top:20px;font-size:15.5px;letter-spacing:.12em;color:var(--gold-hi)}

/* 取引先 */
.plist{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,5vw,70px) 30px;max-width:1000px;text-align:center}
.plist b{display:block;font-size:clamp(23px,2.6vw,34px);font-weight:500;letter-spacing:.14em;color:var(--white)}
.plist small{display:block;font-size:16px;color:var(--sub);margin-top:8px;letter-spacing:.08em;line-height:1.8}

.pgroups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);max-width:1120px;margin-inline:auto}
.pg{background:var(--card);padding:clamp(40px,4.4vw,64px) clamp(24px,3.6vw,56px);text-align:center}
.pg__en{font-family:var(--f-latin);font-style:italic;font-size:19px;letter-spacing:.06em;color:var(--gold)}
.pg h3{font-size:clamp(23px,2.4vw,31px);letter-spacing:.12em;margin-top:10px;line-height:1.6}
.pg ul{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:14px}
.pg li{font-size:clamp(17px,1.6vw,19.5px);line-height:1.8;letter-spacing:.08em;color:var(--sub)}
.pg__names li{font-size:clamp(18px,1.7vw,21px);color:var(--white)}
.pg__names small{display:block;font-size:14.5px;color:var(--sub);letter-spacing:.06em}
.pnote{text-align:center;margin-top:44px;font-size:15px;color:var(--sub);letter-spacing:.08em;line-height:2}
/* ギャラリー */
.marq{overflow:hidden;display:grid;gap:14px}
.marq__track{display:flex;gap:14px;width:max-content;animation:mq 75s linear infinite}
.marq__track--rev{animation-direction:reverse;animation-duration:90s}
.marq:hover .marq__track{animation-play-state:paused}
.marq button{all:unset;cursor:zoom-in;height:clamp(220px,27vw,380px);flex:none;overflow:hidden;display:block}
.marq button:focus-visible{outline:1px solid var(--gold);outline-offset:-1px}
.marq img{height:100%;width:auto;max-width:none;transition:transform 1.4s var(--ease),filter .8s;filter:brightness(.88)}
.marq button:hover img{transform:scale(1.06);filter:none}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* 四季・ツアー */
.seasons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-inline:6px}
.season{position:relative;aspect-ratio:3/5;color:var(--white)}
.season .pic{position:absolute;inset:0}
.season .pic img{--b:.78}
.season:hover .pic img{--b:.95;--s:1.16}
.season::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,0) 58%);pointer-events:none}
.season__k{position:absolute;top:clamp(30px,4vw,52px);left:50%;transform:translateX(-50%);z-index:2;font-size:clamp(60px,6.4vw,96px);line-height:1;font-weight:500;text-shadow:0 2px 30px rgba(0,0,0,.6)}
.season__b{position:absolute;inset:auto 0 0;z-index:2;text-align:center;padding:0 18px clamp(30px,3vw,48px)}
.season__b small{font-family:var(--f-latin);font-style:italic;font-size:17px;letter-spacing:.08em;color:var(--gold-hi)}
.season__b h3{font-size:clamp(20px,1.9vw,26px);letter-spacing:.12em;margin-top:6px}
.season__b p{font-size:16px;line-height:2;color:rgba(255,255,255,.92);margin-top:10px}
.themes{text-align:center;margin-top:clamp(60px,6vw,90px);font-size:clamp(18px,1.7vw,21px);letter-spacing:.16em;color:var(--sub);line-height:2.4}
.themes i{font-style:normal;color:var(--gold);margin-inline:.5em}
.tours{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,1.8vw,26px)}
.tour{display:flex;flex-direction:column;text-align:center}
.tour .pic{aspect-ratio:1/1}
.tour h3{font-size:22px;letter-spacing:.12em;margin-top:26px;transition:color .4s}
.tour:hover h3{color:var(--gold-hi)}
.tour p{font-size:17.5px;line-height:2.1;color:var(--sub);margin-top:12px}

/* 代表 */
.founder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(40px,7vw,120px);align-items:center;max-width:1240px;margin-inline:auto}
.founder__ph{position:relative;max-width:100%}
.founder__ph .pic{aspect-ratio:4/5}
.founder__ph .pic img{object-position:50% 20%;filter:brightness(var(--b,1)) saturate(.88)}
.founder__name{position:absolute;right:-1px;bottom:-1px;z-index:2;background:var(--coal);padding:30px 28px 28px 30px;display:flex;flex-direction:column;align-items:center;gap:.25em;font-size:clamp(34px,3.6vw,48px);color:var(--gold-hi);line-height:1}
.founder__name .gap{height:.5em}
.founder__role{font-family:var(--f-latin);font-style:italic;font-size:22px;letter-spacing:.06em;color:var(--gold)}
.founder__lead{margin-top:22px;font-size:clamp(25px,2.8vw,36px);letter-spacing:.12em;line-height:1.7;color:var(--white)}
.founder__bio{margin-top:30px;font-size:clamp(18px,1.6vw,20px);line-height:2.4;color:var(--sub)}
.tl{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:14px}
.tl li{display:grid;grid-template-columns:6.5em minmax(0,1fr);gap:18px;align-items:baseline}
.tl time{font-family:var(--f-latin);font-size:24px;color:var(--gold-hi);letter-spacing:.06em;line-height:1.3;font-variant-numeric:tabular-nums}
.tl span{font-size:18px;line-height:1.85;letter-spacing:.06em}
.founder__teach{margin-top:30px;font-size:16.5px;color:var(--sub);line-height:2}

/* 理念の帯 */
.quote{position:relative;height:clamp(500px,82vh,760px);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--white)}
.quote>img,.cta>img{position:absolute;left:0;top:-15%;width:100%;height:130%;max-width:none;object-fit:cover;will-change:transform}
.quote::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.55)}
.quote__in{position:relative;z-index:2;padding-inline:var(--gutter)}
.quote__in small{display:block;font-family:var(--f-latin);font-style:italic;font-size:20px;letter-spacing:.1em;color:var(--gold-hi)}
.quote__in p{margin-top:20px;font-size:clamp(30px,4.4vw,60px);letter-spacing:.16em;line-height:1.7}
.quote__in span{display:block;margin-top:30px;font-size:clamp(22px,2.4vw,30px);letter-spacing:.5em;color:var(--gold-hi);padding-left:.5em}

/* 流れ */
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(18px,2vw,30px)}
.flow li{text-align:center}
.flow em{display:block;font-style:normal;font-size:clamp(40px,4vw,56px);line-height:1;color:var(--gold)}
.flow b{display:block;font-weight:500;font-size:21px;letter-spacing:.12em;color:var(--white);margin-top:22px}
.flow p{font-size:17.5px;line-height:2.1;color:var(--sub);margin-top:12px}

/* ブログ */
.blog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.2vw,34px)}
.post{display:flex;flex-direction:column}
.post .pic{aspect-ratio:4/3}
.post__meta{display:flex;justify-content:center;gap:14px;margin-top:22px;font-family:var(--f-latin);font-size:17px;letter-spacing:.1em;color:var(--sub)}
.post__meta span{color:var(--gold-hi);font-family:var(--f-mincho);font-size:15px}
.post h3{font-size:18.5px;line-height:2;letter-spacing:.06em;margin-top:10px;text-align:center;transition:color .4s}
.post:hover h3{color:var(--gold-hi)}

/* お問い合わせ */
.cta{position:relative;overflow:hidden;text-align:center;color:var(--white);padding-block:clamp(140px,15vw,220px)}
.cta::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.68)}
.cta .wrap{position:relative;z-index:2}
.cta__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(50px,6vw,90px);max-width:1080px;margin:0 auto}
.cta__col h3{font-size:clamp(25px,2.6vw,32px);letter-spacing:.12em}
.cta__col p{font-size:17.5px;line-height:2.3;margin:20px auto 34px;max-width:21em;color:rgba(255,255,255,.92)}
.tel{margin-top:clamp(70px,8vw,100px)}
.tel small{display:block;font-size:16px;letter-spacing:.22em;color:rgba(255,255,255,.9)}
.tel ul{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px}
.tel a{font-family:var(--f-latin);font-size:clamp(24px,3vw,38px);letter-spacing:.04em;color:var(--white);user-select:all;word-break:break-all;transition:color .3s}
.tel a:hover{color:var(--gold-hi)}

/* フッター */
.ft{background:var(--black);text-align:center;padding-block:110px 50px}
.ft .logo{display:inline-flex;align-items:center}
.ft nav{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 36px;margin-top:46px;font-size:17px;letter-spacing:.14em}
.ft nav a:hover{color:var(--gold-hi)}
.ft address{font-style:normal;margin-top:36px;font-size:16.5px;line-height:2.2;color:var(--sub)}
.ft__c{margin-top:56px;font-family:var(--f-latin);font-size:14px;letter-spacing:.2em;color:#8f8a80}

/* ライトボックス */
.lb{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.96);display:flex;align-items:center;justify-content:center;padding:calc(40px + env(safe-area-inset-top,0px)) 12px 50px}
.lb img{max-height:82vh;max-width:min(94vw,1300px);width:auto;animation:lbIn .8s var(--ease)}
@keyframes lbIn{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}
.lb button{position:absolute;background:none;border:0;color:var(--white);font-family:var(--f-latin);font-style:italic;font-size:18px;letter-spacing:.1em;cursor:pointer;padding:16px}
.lb__x{top:calc(8px + env(safe-area-inset-top,0px));right:8px}
.lb__p{left:2px;top:50%;transform:translateY(-50%)}.lb__n{right:2px;top:50%;transform:translateY(-50%)}
.lb__c{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-family:var(--f-latin);font-size:16px;letter-spacing:.2em;color:rgba(255,255,255,.75)}

/* ================= レスポンシブ ================= */
@media (max-width:1200px){
  .nav,.hd .lang{display:none}
  .menu-btn{display:block}
  .tours,.blog{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:50px}
  .flow{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:56px}
  .seasons{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
  body{font-size:17px}
  .logo b{font-size:24px;letter-spacing:.3em}
  .hd__in{padding-block:16px}
  .svc,.case,.cta__cols,.pgroups,.founder{grid-template-columns:minmax(0,1fr)}
  .svc__item{aspect-ratio:auto;min-height:540px}
  .case:nth-child(even) .pic{order:0}
  .xrow{grid-template-columns:minmax(0,1fr)}
  .xrow__img,.xrow--r .xrow__img{order:-1}
  .xrow__txt{margin-top:-14vw}
  .xrow__char,.xrow--r .xrow__char{top:-80px;left:auto;right:-10px;width:52vw}
  .founder__ph{max-width:520px;margin-inline:auto;width:100%}
  .hero__place{display:none}
  .season{aspect-ratio:3/4}
  .vstats{flex-direction:column;align-items:center;gap:36px}
  .op__tri div{left:0!important;width:100%;bottom:auto;height:calc(33.333% - 4px);clip-path:inset(0 100% 0 0)}
  .op__tri div:nth-child(1){top:0}.op__tri div:nth-child(2){top:calc(33.333% + 2px)}.op__tri div:nth-child(3){top:calc(66.666% + 4px)}
  .op.s4 .op__tri div:nth-child(1){transform:translateY(-112%)}
  .op.s4 .op__tri div:nth-child(3){transform:translateY(112%)}
  .op.s4 .op__tri div:nth-child(2){top:0;height:100%}
}
@media (max-width:560px){
  body{font-size:17px}
  .tours,.blog,.seasons{grid-template-columns:minmax(0,1fr)}
  .flow{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px;column-gap:18px}
  .flow li:last-child{grid-column:1/-1}
  .btn{min-width:0;width:100%;font-size:16px;letter-spacing:.14em;padding:19px 18px}
  .hero{min-height:600px}
  .hero__body{padding:100px 22px 70px;justify-content:center}
  .hero__shade{background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.45) 45%,rgba(0,0,0,.7) 100%)}
  .hero__pre{font-size:15.5px;letter-spacing:.08em}
  .hero h1{font-size:30px;letter-spacing:.08em;line-height:1.6;margin-top:14px}
  .hero .btns{margin-top:36px;gap:12px;width:100%}
  .hero__scroll{display:none}
  .band p{font-size:16px;letter-spacing:.16em}
  .ttl h2{font-size:27px;letter-spacing:.06em}
  .ttl p{font-size:17px}
  .lead-big{font-size:23px;letter-spacing:.06em}
  .vstats b{font-size:30px;letter-spacing:.14em}
  .vstats span{font-size:14.5px}
  .xrow h3{font-size:38px}
  .inds__l{font-size:19px}
  .pg{padding:40px 16px}
  .pg h3{font-size:21px;letter-spacing:.06em}
  .pg li{font-size:15.5px;letter-spacing:.04em}
  .pg__names li{font-size:17px}
  .pg__names small{font-size:13px}
  .svc__item{padding-inline:16px;min-height:500px}
  .svc__item h3{font-size:23px;letter-spacing:.08em}
  .svc__item p.d{font-size:16.5px}
  .founder__name{font-size:30px;padding:24px 18px 22px 20px}
  .founder__lead{font-size:23px}
  .tl li{grid-template-columns:5.2em minmax(0,1fr);gap:12px}
  .tl time{font-size:21px}
  .tl span{font-size:16px}
  .tel a{font-size:19px}
  .quote__in p{font-size:25px;letter-spacing:.08em}
  .op__logo b{font-size:40px;letter-spacing:.3em;padding-left:.3em}
  .op__logo small span{font-size:14px;letter-spacing:.24em}
  .op__brush{width:min(38vh,240px)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01s!important;animation-delay:0s!important;transition:none!important}
  .op{display:none}
  .marq{overflow-x:auto}
}

/* ブログの見出しは3行まで */
.post h3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
