/* TOP ページ */

/* ---------- ローディング（初回のみ。イラストの包装機から袋がポンポン出てきて、ロゴになる） ---------- */
.loader{position:fixed;inset:0;z-index:200;background:var(--white);display:flex;align-items:center;justify-content:center;transition:transform .9s cubic-bezier(.75,0,.2,1)}
.loader.is-out{transform:translateY(-100%)}
.loader.is-gone{display:none}
.ld2{position:relative;width:min(940px,94vw);aspect-ratio:760/456;container-type:inline-size}
/* 包装機：左。ホッパーの口＝(28cqw, 9cqw)、出口＝(41.6cqw, 52.4cqw) */
.ld2-machine{position:absolute;left:6cqw;top:8.4cqw;height:46.8cqw;width:auto;transform-origin:50% 100%;opacity:0;animation:ld2Pop .55s .05s cubic-bezier(.3,1.5,.5,1) forwards,ld2Shake .45s 1.15s ease-in-out,ld2Fade .4s 3s forwards reverse}
.ld2-grains{position:absolute;left:26.4cqw;top:-2cqw;width:3.6cqw;height:11cqw;pointer-events:none}
.ld2-grains i{position:absolute;top:0;width:1.1cqw;height:1.1cqw;border-radius:50%;opacity:0;animation:ld2Grain .5s linear 2}
.ld2-grains i:nth-child(1){left:0;background:#ffc93c;animation-delay:.55s}
.ld2-grains i:nth-child(2){left:1.3cqw;background:#0071be;animation-delay:.63s}
.ld2-grains i:nth-child(3){left:2.5cqw;background:#ff7a6b;animation-delay:.71s}
.ld2-grains i:nth-child(4){left:.6cqw;background:#3cc6a6;animation-delay:.79s}
.ld2-grains i:nth-child(5){left:2cqw;background:#ffc93c;animation-delay:.87s}
.ld2-grains i:nth-child(6){left:1cqw;background:#0071be;animation-delay:.95s}
/* 袋：出口から弧を描いて右へ。着地点は横一列（中心 y=44cqw） */
.ld2-p{position:absolute;left:37.4cqw;top:47.4cqw;width:8.4cqw;height:10cqw;object-fit:contain;opacity:0;transform:translate(0,0) scale(.2);animation:ld2Fly .62s cubic-bezier(.25,.8,.35,1.15) forwards,ld2Gather .45s 3s cubic-bezier(.6,0,.4,1) forwards}
.ld2-p.p1{--dx:10.4cqw;animation-delay:1.4s,3s}
.ld2-p.p2{--dx:18.4cqw;animation-delay:1.56s,3.02s}
.ld2-p.p3{--dx:26.4cqw;animation-delay:1.72s,3.04s}
.ld2-p.p4{--dx:34.4cqw;animation-delay:1.88s,3.06s}
.ld2-p.p5{--dx:42.4cqw;animation-delay:2.04s,3.08s}
.ld2-p.p6{--dx:50.4cqw;animation-delay:2.2s,3.1s}
.ld2-logo{position:absolute;left:44cqw;top:20.2cqw;width:12cqw;height:auto;opacity:0;transform:scale(.6);animation:ld2Pop .6s 3.2s cubic-bezier(.3,1.6,.5,1) forwards}
.ld2-tag{position:absolute;left:0;right:0;top:37cqw;text-align:center;font-weight:700;font-size:clamp(13px,2.1cqw,16px);letter-spacing:.16em;color:var(--navy);opacity:0;animation:ld2Fade .45s 3.55s forwards;white-space:nowrap}
.ld-skip{position:absolute;right:24px;bottom:24px;background:transparent;border:0;font-family:var(--f-en);font-weight:700;font-size:12px;letter-spacing:.2em;color:var(--mute);cursor:pointer;padding:10px}
@keyframes ld2Pop{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
@keyframes ld2Fade{from{opacity:0}to{opacity:1}}
@keyframes ld2Shake{0%,100%{rotate:0deg}20%{rotate:-1.6deg}40%{rotate:1.6deg}60%{rotate:-1deg}80%{rotate:1deg}}
@keyframes ld2Grain{0%{opacity:1;transform:translateY(0)}85%{opacity:1}100%{opacity:0;transform:translateY(10cqw)}}
@keyframes ld2Fly{0%{opacity:1;transform:translate(0,0) scale(.2) rotate(-30deg)}55%{opacity:1;transform:translate(calc(var(--dx) * .55),-22cqw) scale(.9) rotate(10deg)}100%{opacity:1;transform:translate(var(--dx),-8.4cqw) scale(1) rotate(0deg)}}
@keyframes ld2Gather{from{opacity:1;transform:translate(var(--dx),-8.4cqw) scale(1)}to{opacity:0;transform:translate(8.4cqw,var(--gy,-25.1cqw)) scale(.25)}}
.loader.is-skip *{animation-duration:.01s!important;animation-delay:0s!important}
/* ローディング：スマホ */
@media (max-width:640px){.ld2{width:100vw}.ld2-logo{left:39cqw;top:12.7cqw;width:22cqw;animation-delay:3.4s}.ld2-tag{top:41.7cqw;animation-delay:3.7s}.ld2-p{--gy:-26.7cqw}.ld2-machine{animation-delay:.05s,1.15s,2.85s}}
@media (prefers-reduced-motion:reduce){.loader{display:none}}

/* ---------- MV ---------- */
.mv{position:relative;display:grid;grid-template-columns:44fr 56fr;height:calc(100svh - var(--hd));min-height:640px;max-height:980px;background:var(--white);overflow:hidden}
.mv-l{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:20px 40px 136px max(40px,calc((100vw - 1480px)/2 + 40px))}
.mv-since{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;font-weight:700;font-size:13px;letter-spacing:.2em;color:var(--blue)}
/* キャッチ「包装以上、想像以上。」：1行5文字が左の列に収まる大きさ。英語・スペイン語は長いので小さくして折り返す */
.mv-catch{font-weight:900;font-size:clamp(52px,6.6vw,112px);line-height:1.12;letter-spacing:.02em;color:var(--navy);margin:28px 0 30px}
.mv-catch .ln{display:block;white-space:nowrap}
.mv-catch .ln:last-child{color:var(--blue)}
html:not([lang="ja"]) .mv-catch{letter-spacing:-.01em;line-height:1.06}
html[lang="ko"] .mv-catch{font-size:clamp(44px,5.2vw,88px)}
html[lang="en"] .mv-catch,html[lang="es"] .mv-catch{font-size:clamp(36px,3.9vw,66px)}
html[lang="en"] .mv-catch .ln,html[lang="es"] .mv-catch .ln{white-space:normal}
.mv-sub{font-size:17px;font-weight:700;line-height:2;max-width:540px;color:var(--ink)}
.mv-r{position:relative;margin:0 0 112px}
.mv-slides{position:absolute;inset:0;overflow:hidden;background:var(--sky)}
.mv-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity 1.4s ease,transform 7s linear}
.mv-slides img.on{opacity:1;transform:scale(1)}
/* 写真の左端＝袋のシール部のギザギザ（ピンキング） */
.mv-r::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:16px;z-index:2;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='22' viewBox='0 0 16 22'%3E%3Cpath d='M0 0h1l15 11L1 22H0z' fill='%23fff'/%3E%3C/svg%3E") repeat-y left top/16px 22px}
.mv-ind{position:absolute;right:28px;top:26px;z-index:3;display:flex;gap:6px}
.mv-ind li{display:flex;align-items:center;gap:8px;font-family:var(--f-en);font-weight:700;font-size:12px;letter-spacing:.16em;color:var(--navy);background:rgba(255,255,255,.88);padding:6px 12px;border-radius:999px;transition:background .4s,color .4s}
.mv-ind li.on{background:var(--blue);color:var(--white)}
.mv-news{position:absolute;right:28px;bottom:28px;z-index:3;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;align-items:center;width:min(460px,calc(100% - 56px));background:var(--white);border-radius:18px;padding:16px 16px 16px 22px}
.mv-news-lb{grid-row:span 2;font-weight:800;font-size:13px;letter-spacing:.16em;color:var(--blue)}
.mv-news .go{grid-column:2;justify-self:end;font-size:12px;gap:10px;padding:3px 3px 3px 14px}
.mv-news .go .arr{width:26px;height:26px;font-size:12px}
.mv-news-tx{display:grid;font-size:14px;font-weight:700;line-height:1.6;color:var(--navy)}
.mv-news-tx time{font-size:12px;color:var(--mute);font-weight:600}
.mv-news-tx span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* MVの下：包装機から出てきた袋が、名前を連れてラインを流れていく（左の青い出口から右へ） */
.mv-belt{position:absolute;left:0;right:0;bottom:0;height:112px;background:var(--navy);overflow:hidden;z-index:1}
.mv-belt-lb{position:absolute;left:0;top:0;bottom:0;z-index:2;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:0 36px 0 max(40px,calc((100vw - 1480px)/2 + 40px));background:var(--blue);color:var(--white)}
.mv-belt-lb::after{content:"";position:absolute;right:-12px;top:0;bottom:0;width:12px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='16' viewBox='0 0 12 16'%3E%3Cpath d='M0 0h1l11 8L1 16H0z' fill='%230071be'/%3E%3C/svg%3E") repeat-y left top/12px 16px}
.mv-belt-lb span{font-weight:700;font-size:12px;letter-spacing:.2em;color:#bfe0f7;white-space:nowrap}
.mv-belt-lb b{font-weight:900;font-size:19px;letter-spacing:.06em;white-space:nowrap}
.mv-belt-in{position:relative;display:flex;align-items:flex-end;gap:72px;height:100%;width:max-content;padding:0 0 16px 72px;animation:belt 56s linear infinite reverse}
.mv-belt-in::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:4px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='4'%3E%3Crect width='14' height='4' rx='2' fill='%233d5f82'/%3E%3C/svg%3E") repeat-x left top/24px 4px}
.bp{display:flex;align-items:center;gap:16px;flex:none;background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.bp img{height:78px;width:auto;flex:none;transform-origin:50% 100%;animation:bob 1.8s ease-in-out infinite;transition:scale .3s cubic-bezier(.3,1.5,.5,1)}
.bp:hover img,.bp.is-on img{animation-play-state:paused;scale:1.14}
.bp:focus-visible{outline:2px solid #ffc93c;outline-offset:6px;border-radius:8px}
/* ＋の丸＝押せる・乗せられる合図。開いているあいだは黄色の×になる */
.bp-plus{position:relative;flex:none;width:24px;height:24px;margin-bottom:6px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);transition:background .2s,border-color .2s,transform .3s}
.bp-plus::before,.bp-plus::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;margin:-.75px 0 0 -5px;background:var(--white)}
.bp-plus::after{transform:rotate(90deg)}
.bp:hover .bp-plus{border-color:var(--white)}
.bp.is-on .bp-plus{background:#ffc93c;border-color:#ffc93c;transform:rotate(45deg)}
.bp.is-on .bp-plus::before,.bp.is-on .bp-plus::after{background:var(--navy)}
@media (hover:hover){.mv-belt:hover .mv-belt-in{animation-play-state:paused}}
.mv-belt.is-hold .mv-belt-in{animation-play-state:paused}
/* JSが動くときは、帯をJSで流す（指・マウスで左右にドラッグできる）。縦のスクロールはページに任せる */
.mv-belt.js-belt{touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.mv-belt.js-belt .mv-belt-in{animation:none;will-change:transform}
.mv-belt.is-drag{cursor:grabbing}
.mv-belt img{-webkit-user-drag:none}
.belt-hint{position:absolute;left:calc(50% + 80px);top:50%;z-index:3;display:flex;align-items:center;gap:12px;margin:0;padding:9px 18px;border-radius:999px;background:rgba(4,16,30,.82);color:var(--white);font-weight:700;font-size:13px;letter-spacing:.06em;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .35s}
.belt-hint.is-on{opacity:1}
.belt-hint i{position:relative;width:30px;height:2px;border-radius:2px;background:rgba(255,255,255,.45)}
.belt-hint i::after{content:"";position:absolute;left:0;top:-3px;width:8px;height:8px;border-radius:50%;background:#ffc93c;animation:hintDot 1.1s ease-in-out infinite alternate}
@keyframes hintDot{to{left:22px}}
/* 袋の説明（ポップアップ）：帯の上に、選んだ袋を指して出る */
.bp-pops{position:absolute;left:0;right:0;bottom:126px;height:0;z-index:5}
.bpp{position:absolute;left:0;bottom:0;width:min(400px,calc(100vw - 32px));background:var(--navy);color:var(--white);border-radius:22px;padding:24px 26px 26px;opacity:0;transform:translateY(12px);transition:opacity .25s ease,transform .3s cubic-bezier(.2,.8,.2,1)}
.bpp.is-open{opacity:1;transform:none}
.bpp::after{content:"";position:absolute;left:var(--ax,50%);bottom:-11px;margin-left:-12px;border-style:solid;border-width:12px 12px 0;border-color:var(--navy) transparent transparent}
.bpp-x{position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:50%;background:transparent;border:0;cursor:pointer}
.bpp-x::before,.bpp-x::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;margin:-1px 0 0 -8px;background:#8fb3d6;transform:rotate(45deg)}
.bpp-x::after{transform:rotate(-45deg)}
.bpp-x:hover::before,.bpp-x:hover::after{background:var(--white)}
.bpp-hd{display:flex;align-items:center;gap:18px;padding-right:30px}
.bpp-hd img{height:84px;width:72px;object-fit:contain;flex:none}
.bpp-hd span{display:block;font-weight:800;font-size:12px;letter-spacing:.18em;color:#ffc93c}
.bpp-hd b{display:block;font-weight:900;font-size:24px;line-height:1.4;margin-top:4px}
.bpp-tx{font-size:15px;line-height:1.85;color:#d7e6f5;margin:16px 0 14px}
.bpp-mc{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;font-size:13px;margin-bottom:20px}
.bpp-mc span{font-weight:700;color:#8fb3d6}
.bpp-mc b{font-weight:800;font-size:14px;letter-spacing:.06em;color:var(--white)}
.bp:nth-child(5n+2) img{animation-delay:-.36s}
.bp:nth-child(5n+3) img{animation-delay:-.72s}
.bp:nth-child(5n+4) img{animation-delay:-1.08s}
.bp:nth-child(5n) img{animation-delay:-1.44s}
.bp-tx{display:grid;gap:2px;padding-bottom:6px;white-space:nowrap}
.bp-tx b{font-weight:800;font-size:13px;letter-spacing:.16em;color:var(--white)}
.bp-tx small{font-weight:700;font-size:12px;color:#b9cde2}
@keyframes belt{to{transform:translateX(-50%)}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-8px) rotate(3deg)}}
.js .mv .mv-since,.js .mv .mv-catch .ln,.js .mv .mv-sub{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.js .mv.is-in .mv-since,.js .mv.is-in .mv-catch .ln,.js .mv.is-in .mv-sub{opacity:1;transform:none}
.js .mv.is-in .mv-catch .ln:nth-child(1){transition-delay:.1s}
.js .mv.is-in .mv-catch .ln:nth-child(2){transition-delay:.25s}
.js .mv.is-in .mv-sub{transition-delay:.4s}
@media (prefers-reduced-motion:reduce){.mv-belt-in,.bp img{animation:none}.bpp{transition:none}.js .mv *{opacity:1!important;transform:none!important}}

/* 一覧へ移るボタンは、見出しの横ではなく、中身を見たあと（セクションの最後）に置く */
.sh-row>.btn,.news-h>.btn{display:none}
.sec-more{display:flex;justify-content:center;margin:56px 0 0}

/* ---------- ABOUT ---------- */
.about-head{display:grid;grid-template-columns:4fr 8fr;gap:60px;margin-bottom:90px}
.about-h{font-size:clamp(40px,5.4vw,84px);line-height:1.25;margin-bottom:30px}
.about-h .ln,.line-head .ln,.glb-tx .ln,.anv .ln{display:block}
html[lang="ja"] .about-h .ln{white-space:nowrap}
html[lang="en"] .about-h,html[lang="es"] .about-h{font-size:clamp(34px,3.8vw,58px)}
/* 3枚は同じ高さのまま、カードごと70pxずつ下げる＝写真も見出しも→ボタンも同じ斜めに並ぶ */
.str{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;padding-bottom:140px}
.str-i{position:relative;display:block;padding-bottom:66px}
.str-i:nth-child(2){translate:0 70px}
.str-i:nth-child(3){translate:0 140px}
.str-ph{margin:0 0 26px;aspect-ratio:4/5;overflow:hidden;border-radius:20px;background:var(--sky)}
.str-ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.str-i:hover .str-ph img{transform:scale(1.05)}
.str-n{font-weight:800;font-size:56px;line-height:1;color:var(--blue);margin-right:14px}
.str-en{font-weight:700;font-size:12px;letter-spacing:.2em;color:var(--navy)}
.str-i h3{font-weight:900;font-size:clamp(21px,1.9vw,27px);line-height:1.5;color:var(--navy);margin:16px 0 10px}
.str-i p{font-size:15px;line-height:1.95}
.str-i .go{position:absolute;left:0;bottom:10px}

/* ---------- NUMBERS ---------- */
.num-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.num-grid li{position:relative;background:var(--white);border-radius:24px;padding:34px 30px 34px;text-align:center}
.num-lb{display:block;margin-bottom:10px;font-weight:700;font-size:14px;letter-spacing:.14em;color:var(--blue)}
.num-ill{display:block;width:150px;height:112px;object-fit:contain;margin:0 auto 10px}
.num-v{display:flex;justify-content:center;align-items:baseline;gap:8px;flex-wrap:wrap}
.num-v b{font-weight:800;font-size:clamp(54px,5.4vw,80px);line-height:1.1;color:var(--blue);letter-spacing:.01em}
.num-v small{font-weight:700;font-size:16px;color:var(--navy)}
.num-p{font-size:14px;line-height:1.85;color:var(--mute);margin-top:10px}

/* ---------- PRODUCTS ---------- */
.sub-h{display:flex;align-items:center;gap:14px;font-weight:900;font-size:clamp(22px,2vw,28px);color:var(--navy);margin:0 0 26px}
.sub-h .en-num{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--blue);color:var(--white);font-weight:700;font-size:14px}
.sub-h:not(:first-of-type){margin-top:90px}
/* 袋のかたちごとに色を決め（MV下の帯のイラストと同じ色）、タブと下の説明ゾーンを同じ色で連動させる
   --pc：選んだときの濃い色 ／ --pt：淡い地 ／ --pd：文字用の濃い色 */
[data-pz="3side"]{--pc:#1a7fe0;--pt:#e2effc;--pd:#105aa6}
[data-pz="4side"]{--pc:#f5b800;--pt:#fff2c2;--pd:#8a6400}
[data-pz="stick"]{--pc:#ef5a4a;--pt:#fde2de;--pd:#bc3426}
[data-pz="pillow"]{--pc:#17a673;--pt:#d9f2e7;--pd:#0d7650}
[data-pz="pyramid"]{--pc:#7b5ad6;--pt:#ebe4fb;--pd:#5636b4}
[data-pz="bag"]{--pc:#0b2a4a;--pt:#dce4ee;--pd:#0b2a4a}
.pz-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.pz-tab{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--pt);border:0;border-radius:18px;padding:18px 8px 16px;cursor:pointer;font-weight:700;font-size:15px;color:var(--pd);transition:background .25s,color .25s,transform .25s}
.pz-ic{display:block;width:88px;height:88px;border-radius:50%;background:var(--white);overflow:hidden}
.pz-ic img{width:100%;height:100%;object-fit:contain}
.pz-tab:hover{transform:translateY(-3px)}
.pz-tab[aria-selected="true"]{background:var(--pc);color:var(--white)}
.pz-tab[data-pz="4side"][aria-selected="true"]{color:var(--navy)}
/* 選んだタブから説明ゾーンへ、同じ色の三角でつなぐ（タブが1列に並ぶときだけ） */
.pz-tab[aria-selected="true"]::after{content:"";position:absolute;left:50%;bottom:-13px;margin-left:-13px;border-style:solid;border-width:13px 13px 0;border-color:var(--pc) transparent transparent}
.pz-panels{margin-top:22px}
.pz-panel{display:grid;grid-template-columns:4fr 7fr;gap:44px;align-items:start;background:var(--pt);border-radius:24px;padding:40px 40px}
.pz-panel .pz-head h3{color:var(--pd)}
.pz-panel .mini-tx small{color:var(--pd)}
.pz-panel[hidden]{display:none}
/* 袋の写真の下に名前と説明（横に並べると説明の列が細くなり、字間が空く） */
.pz-head{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.pz-big{display:block;width:160px;height:160px;background:var(--white);border-radius:50%;overflow:hidden}
.pz-big img{width:100%;height:100%;object-fit:contain}
.pz-head h3{font-weight:900;font-size:28px;color:var(--navy);line-height:1.4}
.pz-head p{font-size:15px;line-height:1.9;margin-top:8px}
/* 製品は1列の一覧（2列だと機種名の列が細くなり、変な所で改行される） */
.pz-list{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.pz-list .mini{grid-template-columns:80px minmax(0,1fr) 36px;padding:10px 16px 10px 12px}
.pz-list .mini-ph{width:80px;height:80px}
.mth{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
/* 写真の下は「名前と説明｜矢印の丸」の横並び。矢印は文字のかたまりの上下中央に置く（右下に寄せない） */
.mth-i{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;align-content:start;column-gap:12px;background:var(--sky);border-radius:22px;padding:14px 18px 22px 14px}
.mth-i figure{grid-column:1/-1;margin:0;aspect-ratio:4/3;background:var(--white);border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:12px}
.mth-i figure img{width:100%;height:100%;object-fit:contain;transition:transform .6s}
.mth-i:hover figure img{transform:scale(1.05)}
.mth-tx{display:block;padding:18px 0 0 8px}
.mth-tx b{display:block;font-weight:900;font-size:21px;color:var(--navy)}
.mth-tx small{display:block;font-size:13px;line-height:1.7;color:var(--mute);margin-top:4px}
/* 包装方式のカードは文字なしの矢印の丸だけ（ご指定：「詳しく見る」はいらない） */
.mth-i .arr{margin-top:18px}

/* ---------- TOTAL LINE ---------- */
.line-head{display:grid;grid-template-columns:4fr 8fr;gap:60px;margin-bottom:80px}
.line-head .h2{font-size:clamp(30px,3.6vw,52px);margin-bottom:24px}
html[lang="ja"] .line-head .ln{white-space:nowrap}
.line-head .lead-p{color:#d6e5f3}
.flow-wrap{position:relative;padding-top:4px}
/* 5工程はすべて同じ扱い（どれか1つだけ目立たせない）。袋が通った線が白く伸び、最後は全工程が点灯する */
.flow{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.flow::before,.flow::after{content:"";position:absolute;left:10%;right:10%;top:15px;height:2px;background:#3d5f82;z-index:0}
.flow::after{right:auto;left:var(--fx0,10%);width:var(--fw,0);background:var(--white)}
.flow.is-full::after{left:10%;width:80%}
.flow li{position:relative;z-index:1;text-align:center;padding-top:52px}
.flow-dot{position:absolute;left:50%;top:4px;width:24px;height:24px;margin-left:-12px;border-radius:50%;background:var(--navy);box-shadow:inset 0 0 0 3px #6f93b8;transition:background .3s,box-shadow .3s,transform .3s}
.flow li.lit .flow-dot{background:var(--white);box-shadow:inset 0 0 0 3px var(--white);transform:scale(1.15)}
.flow-n{display:block;font-weight:700;font-size:13px;letter-spacing:.14em;color:#8fb3d6}
.flow b{display:block;font-weight:900;font-size:clamp(17px,1.5vw,21px);line-height:1.5;margin:6px 0 8px;color:var(--white)}
.flow small{display:block;font-size:13px;line-height:1.7;color:#b9cde2}
.flow-all{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 18px;margin:40px 0 0;padding:15px 28px;border-radius:999px;background:var(--blue);color:var(--white);font-weight:700;font-size:16px;line-height:1.6;text-align:center}
.flow-all span{font-weight:800;font-size:12px;letter-spacing:.22em;color:#ffc93c;white-space:nowrap}
.flow-run{position:absolute;top:-22px;left:10%;width:68px;height:68px;margin-left:-34px;pointer-events:none;transition:none;border-radius:50%;background:#ffc93c;overflow:hidden;z-index:2}
.flow-run img{width:100%;height:100%;object-fit:contain;padding:8px;mix-blend-mode:multiply}
.flow-run img.is-local{mix-blend-mode:normal}
.line-btm{display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:center;margin-top:80px}
.line-ph{margin:0;aspect-ratio:16/9;border-radius:24px;overflow:hidden;background:var(--white);display:flex;align-items:center;justify-content:center}
.line-ph img{width:100%;height:100%;object-fit:contain;padding:20px}
.line-ph img.is-local{object-fit:cover;padding:0}
.line-cap p{font-size:16px;line-height:2;color:#d6e5f3;margin-bottom:30px}

/* ---------- INDUSTRY（横スクロール） ---------- */
.ind-panels{display:flex;gap:12px;height:560px}
.ind-p{position:relative;flex:1 1 0;min-width:0;border-radius:24px;overflow:hidden;background:var(--sky);transition:flex-grow .7s cubic-bezier(.2,.8,.2,1)}
.ind-p.is-on{flex-grow:3.6}
.ind-p img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.ind-p.is-on img{transform:scale(1.04)}
.ind-tab{position:absolute;left:12px;right:12px;bottom:12px;background:var(--navy);color:var(--white);border-radius:16px;padding:16px 14px;display:grid;gap:4px;transition:opacity .35s}
.ind-tab b{font-weight:900;font-size:18px;line-height:1.4}
.ind-en{font-weight:700;font-size:12px;letter-spacing:.18em;color:#8fc3ea;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ind-body{position:absolute;left:20px;bottom:20px;width:clamp(300px,32vw,440px);background:var(--white);border-radius:20px;padding:24px 26px 26px;display:grid;gap:6px;opacity:0;transform:translateY(16px);transition:opacity .45s .15s,transform .45s .15s;pointer-events:none}
.ind-body .ind-en{color:var(--blue)}
.ind-h{font-weight:900;font-size:26px;color:var(--navy);line-height:1.4}
.ind-txt{font-size:15px;line-height:1.85;color:var(--ink)}
.ind-fact{display:flex;align-items:baseline;gap:10px;margin-top:8px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;font-weight:700;color:var(--mute)}
.ind-fact b{font-weight:800;font-size:34px;color:var(--blue);line-height:1;white-space:nowrap}
.ind-fact{flex-wrap:wrap;row-gap:4px}
.num-v b,.glb-reg b,.anv-tl b{white-space:nowrap}
.ind-body .go{justify-self:end;margin-top:10px}
.ind-p.is-on .ind-tab{opacity:0}
.ind-p.is-on .ind-body{opacity:1;transform:none;pointer-events:auto}
/* ---------- CASE STUDY：写真と文字を1枚ごとに左右入れ替え。現れ方は「封を切る」動き（base.css .case） ---------- */
.stack{display:grid;gap:30px}
.stack .case{min-height:440px}

/* ---------- GLOBAL ---------- */
.glb-in{display:grid;grid-template-columns:5fr 7fr;gap:50px;align-items:center}
.glb-tx .h2{margin:28px 0 20px;font-size:clamp(28px,3.2vw,46px)}
html[lang="ja"] .glb-tx .ln{white-space:nowrap}
.glb-p{font-size:16px;line-height:2}
.glb-reg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:34px}
.glb-reg li{background:var(--sky);border-radius:16px;padding:14px 16px;display:flex;align-items:baseline;gap:10px}
.glb-reg b{font-weight:800;font-size:34px;color:var(--blue);line-height:1}
.glb-reg span{font-weight:700;font-size:14px;color:var(--navy)}
.glb-map{position:relative}
.glb-map canvas{display:block;width:100%;aspect-ratio:2.594/1}
.glb-osaka{position:absolute;font-weight:700;font-size:12px;letter-spacing:.2em;color:var(--blue);left:var(--ox,85%);top:var(--oy,30%);transform:translate(12px,-50%);white-space:nowrap}
.glb-lang{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 30px;background:var(--sky);border-radius:22px;padding:22px 28px;margin-top:60px}
.glb-lang p{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--navy)}
.glb-lang svg{width:28px;height:28px;color:var(--blue)}
.glb-lang nav{display:flex;flex-wrap:wrap;gap:8px}
.glb-lang nav a{background:var(--white);border-radius:999px;padding:8px 18px;font-weight:700;font-size:14px;color:var(--navy)}
.glb-lang nav a:hover{color:var(--blue)}
.glb-lang nav a[aria-current="true"]{background:var(--blue);color:var(--white)}

/* ---------- 60th ---------- */
.anv{background:var(--blue);color:var(--white);padding:130px 0 110px;overflow:hidden}
.anv-in{display:grid;grid-template-columns:5fr 7fr;gap:40px;align-items:center}
.anv-num{font-family:var(--f-en);font-weight:800;line-height:.8;display:flex;align-items:flex-start}
.anv-num span{font-size:clamp(200px,24vw,360px);letter-spacing:-.04em}
.anv-num small{font-size:clamp(48px,5vw,80px);margin-top:.2em}
.anv-lb{font-weight:700;font-size:13px;letter-spacing:.24em;color:#cfe6f8}
.anv-tx .h2{margin:18px 0 20px;font-size:clamp(28px,3.2vw,46px);color:var(--white)}
html[lang="ja"] .anv .ln{white-space:nowrap}
.anv-p{font-size:16px;line-height:2;color:#e3f0fa;margin-bottom:34px;max-width:620px}
.anv-tl{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:90px;padding-top:30px}
.anv-tl::before{content:"";position:absolute;left:0;right:0;top:7px;height:2px;background:rgba(255,255,255,.35)}
.anv-tl li{position:relative}
.anv-tl li::before{content:"";position:absolute;left:0;top:-30px;width:16px;height:16px;border-radius:50%;background:var(--blue);box-shadow:inset 0 0 0 3px var(--white)}
.anv-tl li.now::before{background:var(--white)}
.anv-tl b{display:block;font-weight:800;font-size:30px;line-height:1.1}
.anv-tl span{display:block;font-size:14px;line-height:1.7;color:#e3f0fa;margin-top:6px}

/* ---------- NEWS ---------- */
.news-in{display:grid;grid-template-columns:4fr 8fr;gap:60px}
.news-h .btn{margin-top:40px}
.news-in .sec-more{grid-column:2;margin-top:-20px}

/* ---------- RECRUIT / CATALOG ---------- */
.bnrs{padding:0 0 140px}
.bnrs-in{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.bnr{display:grid;grid-template-columns:1fr 1fr;border-radius:26px;overflow:hidden;background:var(--navy);color:var(--white);min-height:300px}
.bnr figure{margin:0;overflow:hidden;background:var(--sky)}
.bnr figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.bnr:hover figure img{transform:scale(1.05)}
.bnr-tx{position:relative;padding:34px 30px 30px;display:flex;flex-direction:column}
.bnr-en{font-weight:800;font-size:34px;letter-spacing:.02em;line-height:1}
.bnr-tx b{font-weight:900;font-size:20px;margin:14px 0 8px}
.bnr-tx p{font-size:14px;line-height:1.85;color:#cfe0f0}
.bnr-tx .go{margin-top:auto;align-self:flex-end;color:var(--white)}
.bnr-tx p{margin-bottom:18px}
.bnr:hover .bnr-tx .go{background:var(--white);color:var(--navy)}
.bnr:hover .bnr-tx .go .arr{background:var(--blue);color:var(--white)}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .about-head,.line-head,.news-in,.glb-in{grid-template-columns:minmax(0,1fr);gap:36px}
  .news-in .sec-more{grid-column:auto;margin-top:0}
  .num-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pz-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pz-tab[aria-selected="true"]::after{display:none}
  .pz-panels{margin-top:14px}
  .pz-panel{grid-template-columns:1fr;gap:26px;padding:30px}
  .mth{grid-template-columns:repeat(2,minmax(0,1fr))}
  .line-btm{grid-template-columns:1fr;gap:36px}
  .anv-in{grid-template-columns:1fr}
  .anv-tl{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:46px}
  .bnrs-in{grid-template-columns:1fr}
}
@media (max-width:900px){
  .ind-panels{flex-direction:column;height:auto;gap:12px}
  .ind-p{flex:none;display:grid;grid-template-columns:132px minmax(0,1fr);border-radius:20px;background:var(--sky)}
  .ind-p img{position:static;width:132px;height:auto;align-self:stretch;min-height:150px;transform:none!important}
  .ind-tab{display:none}
  .ind-body{position:static;width:auto!important;opacity:1;transform:none;pointer-events:auto;background:transparent;padding:18px 18px 20px;border-radius:0}
  .ind-h{font-size:20px}
  .ind-txt{font-size:14px}
  .ind-fact b{font-size:26px}
  .ind-body .go{font-size:13px}
  .ind-body .go .arr{width:32px;height:32px}
  .mv{display:block;height:calc(100svh - var(--hd));min-height:560px;max-height:none}
  .mv-r{position:absolute;inset:0;margin:0 0 88px}
  .mv-r::before{display:none}
  .mv-slides img{object-position:68% 50%}
  .mv-l{position:absolute;left:0;right:0;top:0;bottom:88px;padding:28px 20px 150px;justify-content:flex-start}
  .mv-since{gap:8px}
  .mv-since>span:first-child{background:var(--white);padding:3px 10px;border-radius:4px}
  .mv-catch{font-size:clamp(50px,11vw,96px);margin:20px 0 0;line-height:1.08}
  html[lang="ko"] .mv-catch{font-size:clamp(38px,8.4vw,76px)}
  html[lang="en"] .mv-catch,html[lang="es"] .mv-catch{font-size:clamp(32px,6.4vw,58px)}
  .mv-catch .ln{display:table;background:var(--white);padding:.06em .3em .1em .2em;margin-bottom:.12em}
  .mv-sub{display:none}
  .mv-ind{display:none}
  .mv-news{display:none}   /* スマホ・タブレットのMVはキャッチと写真だけ（お知らせは下のNEWSで） */
  .mv-belt{height:88px}
  .mv-belt-lb{padding:0 18px 0 20px}
  .mv-belt-lb::after{background-size:12px 17.6px}
  .mv-belt-lb span{display:none}
  .mv-belt-lb b{font-size:14px;letter-spacing:.04em}
  .mv-belt-in{gap:44px;padding:0 0 13px 44px}
  .mv-belt-in::after{bottom:7px}
  .bp{gap:10px}
  .bp img{height:58px}
  .bp-tx b{font-size:12px;letter-spacing:.12em}
  .bp-plus{width:22px;height:22px;margin-bottom:2px}
  .bp-pops{bottom:100px}
  .belt-hint{left:calc(50% + 44px);font-size:12px;padding:8px 14px}
  .bpp{padding:20px 20px 22px;border-radius:18px}
  .bpp-hd img{height:68px;width:58px}
  .bpp-hd b{font-size:21px}
  .bpp-tx{font-size:14px;margin:12px 0 10px}
  .bpp-mc{margin-bottom:16px}
  .str{grid-template-columns:1fr;gap:56px;padding-bottom:0}
  .str-i:nth-child(n){translate:none}
  .str-ph{aspect-ratio:4/3}
  .flow{grid-template-columns:1fr;gap:0}
  .flow::before{left:27px;right:auto;top:20px;bottom:20px;width:2px;height:auto}
  .flow::after{left:27px;right:auto;top:var(--fy0,20px);width:2px;height:var(--fh,0)}
  .flow.is-full::after{left:27px;top:20px;width:2px;height:calc(100% - 40px)}
  .flow li{text-align:left;padding:14px 0 14px 70px}
  .flow-dot{left:27px;top:20px}
  /* スマホ・タブレット：袋が縦の線をたどって下りる */
  .flow-run{top:0;width:46px;height:46px;margin:-23px 0 0 -23px}
  .flow-run img{padding:6px}
  .flow-all{margin-top:24px;border-radius:18px;padding:14px 20px;font-size:15px}
  .case{grid-template-columns:1fr;min-height:0}
  .case-ph{aspect-ratio:16/9}
  .case-tx{padding:30px 26px 30px}
}
@media (max-width:640px){
  .sec-more{margin-top:40px}
  /* 画面下に固定のボタン（TEL・カタログ・お問い合わせ 約53px）があるので、その分MVを短くして、袋の帯が最初の画面で全部見えるようにする */
  .mv{height:calc(100svh - var(--hd) - 53px);min-height:520px}
  .mv-catch{font-size:clamp(40px,13.4vw,60px)}
  html[lang="ko"] .mv-catch{font-size:clamp(34px,10vw,50px)}
  html[lang="en"] .mv-catch,html[lang="es"] .mv-catch{font-size:clamp(28px,8.2vw,40px)}
  .about-head{margin-bottom:56px;text-align:center}
  .about-h .ln{display:block}
  .about-head .lead-p{text-align:left}
  .str-i{text-align:center}
  .str-i{padding-bottom:10px}
  .str-i .go{position:static;margin-top:18px}
  .num-grid{grid-template-columns:1fr;gap:14px}
  .num-grid li{padding:52px 22px 26px}
  .sub-h{justify-content:center;text-align:center;flex-direction:column;gap:10px}
  .pz-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .pz-tab{font-size:13px;padding:12px 4px}
  .pz-ic{width:64px;height:64px}
  .pz-panel{padding:24px 16px}
  .pz-head{grid-template-columns:1fr;text-align:center;justify-items:center;gap:14px}
  .pz-big{width:140px;height:140px}
  .pz-head p{text-align:left}
  .pz-list{grid-template-columns:1fr}
  .mth{grid-template-columns:1fr 1fr;gap:10px}
  .mth-i{padding:10px 12px 14px 10px;column-gap:8px}
  .mth-tx{padding:12px 0 0 4px}
  .mth-tx b{font-size:16px}
  .mth-tx small{display:none}
  .mth-i .arr{margin-top:12px;width:32px;height:32px}
  .line-head{text-align:center}
  .line-head .lead-p{text-align:left}
  .line-cap{text-align:center}
  .line-cap p{text-align:left}
  .glb-tx{text-align:center}
  .glb-p{text-align:left}
  .glb-reg{grid-template-columns:1fr 1fr}
  .glb-reg li{justify-content:center}
  .glb-lang{flex-direction:column;text-align:center;padding:22px 18px}
  .glb-lang nav{justify-content:center}
  .anv{padding:90px 0 80px;text-align:center}
  .anv-num{justify-content:center}
  .anv-p{text-align:left}
  .anv-tl{grid-template-columns:1fr 1fr;text-align:left}
  .news-h{text-align:center}
  .ns{grid-template-columns:96px 1fr 34px;gap:14px}
  .ns .go .arr{width:30px;height:30px}
  .ns-tx b{font-size:15px}
  .bnr{grid-template-columns:1fr}
  .bnr figure{aspect-ratio:16/9}
  .bnr-tx{text-align:center;align-items:center}
  .bnr-tx .go{align-self:center}
  .bnrs{padding-bottom:88px}
}

.qa .mv{height:780px;min-height:0;max-height:780px}
@media (max-width:900px){.qa .mv{height:720px;max-height:720px}}
.qa .mv *{transition:none!important}
/* 禁止67：説明文は右端まで流す（リードに横幅の上限を付けない。文章とイラスト・写真の間は48px） */
.mv-sub{max-width:none}
.line-btm{column-gap:48px}
