/*
Theme Name: Earth Blower Child
Template: astra
Author: hpm:earthblower
Description: Earth Blower Japan (earthblower) Astra child theme. Built from the static sample site.
Version: 1.0
*/

/* ==== site/style.css ==== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --primary:#0f6db5;
  --accent:#22c8ff;
  --accent-glow:rgba(34,200,255,.12);
  --navy:#06203f;
  --navy-mid:#0a2d55;
  --navy-light:#102d52;
  --ice:#f4f8fb;
  --light:#f5f7fa;
  --white:#fff;
  --text:#000;
  --text-sub:#333;
  --border-light:rgba(255,255,255,.06);
  --border-dark:#d9e4ef;
  --tag-bg:rgba(140,180,210,.15);
  --tag-border:rgba(140,180,210,.25);
  --tag-color:rgba(255,255,255,.7);
  --card-bg:rgba(255,255,255,.09);
  --card-border:rgba(255,255,255,.08);
  --sans:'Noto Sans JP','Jost',sans-serif;
  --en:'Jost','Noto Sans JP',sans-serif;
  /* 角丸なし */
  --radius:0;
  --radius-sm:0;
  --shadow:0 4px 24px rgba(8,38,74,.08);
  --shadow-hover:0 8px 32px rgba(8,38,74,.14);
  --sec-gap:48px;
  /* Fixed side width */
  --side-w:80px;
}

html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--text);line-height:1.7;letter-spacing:.04em;-webkit-font-smoothing:antialiased;background-color:#fff}
html{scrollbar-gutter:stable}
body.menu-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit;transition:.3s}
ul{list-style:none}
.container{max-width:1360px;margin:0 auto;padding:0 40px}

/* ===== Fixed Side CTA ===== */
.fixed-side{position:fixed;top:50%;right:0;transform:translateY(-50%);width:auto;z-index:200;display:flex;flex-direction:column;gap:0}
.fixed-side a{width:80px;height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-family:var(--en);font-size:10px;font-weight:700;letter-spacing:.12em;transition:.3s}
.fixed-side a:hover{opacity:.85}
.fixed-side .fs-contact{background-color:var(--primary);color:#fff}
.fixed-side .fs-tel{background-color:var(--navy);color:#fff}
.fixed-side .fs-demo{background-color:var(--accent);color:var(--navy)}
.fixed-side .fs-catalog{background-color:#0a96d8;color:#fff}
.fixed-side .fs-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center}
.fixed-side .fs-icon svg{width:28px;height:28px}

/* ===== Marquee Bar ===== */
@keyframes marqueeLeft{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.marquee-bar{overflow:hidden;background-color:var(--primary);height:52px;display:flex;align-items:center;margin-right:0;position:relative;z-index:90;border-top:2px solid var(--accent);border-bottom:2px solid rgba(255,255,255,.1)}
.marquee-track{display:flex;white-space:nowrap;animation:marqueeLeft 35s linear infinite}
.marquee-track span{font-family:var(--en);font-size:14px;font-weight:700;color:#fff;letter-spacing:.25em;padding:0 56px;text-transform:uppercase}

/* ===== Outline Background Text ===== */
.outline-text{position:absolute;top:50%;left:0;width:100%;transform:translateY(-50%);overflow:hidden;pointer-events:none;display:flex;white-space:nowrap;animation:marqueeLeft 50s linear infinite}
.outline-text span{font-family:var(--en);font-size:clamp(120px,16vw,220px);font-weight:900;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.08);padding:0 60px;text-transform:uppercase;line-height:1}
/* Light bg outline text */
.strengths .outline-text span{-webkit-text-stroke:1.5px rgba(15,109,181,.08)}
.cases .outline-text span{-webkit-text-stroke:1.5px rgba(15,109,181,.06)}

/* ===== Noise Texture Overlay (dark sections) ===== */
.about::after,.products::after,.final-cta::after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0}
.about>.container,.products>.container,.final-cta>.container{position:relative;z-index:1}

/* ===== Card Effects ===== */

/* ===== Section Dividers ===== */
.section-divider{height:4px;background:linear-gradient(90deg,transparent 5%,var(--accent) 30%,var(--primary) 70%,transparent 95%);opacity:.3;margin-right:0}

/* ===== Header ===== */
.header{position:fixed;top:0;left:0;width:100%;z-index:100;transition:background .4s,box-shadow .4s}
.header-inner{display:grid;grid-template-columns:auto 1fr;grid-template-rows:46px auto;align-items:center;max-width:1440px;margin:0 auto;padding:8px 40px;height:auto;column-gap:24px;row-gap:6px}
.header-inner .logo{grid-row:1/3;grid-column:1;display:flex;align-items:center}
.header-inner .header-right{grid-row:1;grid-column:2;display:flex;align-items:center;gap:18px;justify-self:end}
.header-inner .gnav{grid-row:2;grid-column:2;display:flex;justify-content:flex-end}
.header-inner .sp-menu-btn{grid-row:1/3;grid-column:2;justify-self:end;align-self:center}
.header-tel{font-size:18px!important;padding:4px 0}
.header-public{display:inline-flex;align-items:center;font-size:12px;font-weight:600;letter-spacing:.04em;color:#fff;background-color:transparent;border:1px solid rgba(255,255,255,.4);padding:7px 14px;border-radius:2px;white-space:nowrap;transition:.2s;line-height:1.2}
.header-public:hover{border-color:#fff;background-color:rgba(255,255,255,.08)}
@media(max-width:1280px){.header-public{font-size:11px;padding:6px 10px}}
.header-cta{padding:10px 24px!important;font-size:13px!important}
.logo-img{height:64px;width:auto;max-width:none;display:block}
.header-inner .logo{padding:8px 0;flex-shrink:0}
/* VIP Nav */
.gnav ul{display:flex;gap:4px;list-style:none;flex-wrap:nowrap;white-space:nowrap}
.gnav>ul>li>a{font-size:13px;font-weight:600;letter-spacing:.04em;color:#fff;transition:.3s;position:relative;padding:10px 12px;display:block;white-space:nowrap}
.gnav>ul>li>a::after{content:'';position:absolute;bottom:0;left:12px;right:12px;height:2px;background:var(--accent);transform:scaleX(0);transition:transform .3s;transform-origin:left}
@media(max-width:1300px){.gnav>ul>li>a{font-size:12px;padding:10px 7px}.gnav>ul>li>a::after{left:7px;right:7px}.gnav ul{gap:2px}}
@media(max-width:1200px){.gnav>ul>li>a{font-size:11px;padding:9px 5px;letter-spacing:.02em}.gnav>ul>li>a::after{left:5px;right:5px}.header-right{gap:12px}.header-public{font-size:10px;padding:5px 9px}.header-tel{font-size:16px!important}.header-tel span{font-size:15px}.header-catalog{padding:8px 14px!important;font-size:11px!important}.header-cta{padding:8px 16px!important;font-size:11px!important}}
@media(max-width:1100px){.header-inner .gnav{display:none}.header-inner .header-right{display:none}.header-inner .sp-menu-btn{display:block;grid-row:1/3;grid-column:2;justify-self:end}}
.gnav>ul>li:hover>a{color:var(--white)}
.gnav>ul>li:hover>a::after{transform:scaleX(1)}
.header-right{display:flex;align-items:center;gap:20px}
.header-tel{display:flex;align-items:center;gap:8px;font-family:var(--en);font-size:20px;font-weight:700;color:var(--white);letter-spacing:.04em;transition:.3s}
.header-tel svg{opacity:.8;width:20px;height:20px}
.header-tel:hover{color:var(--accent)}
.header-cta{display:inline-flex;align-items:center;gap:8px;position:relative;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--navy);background:var(--white);border:none;padding:10px 22px;transition:all .3s;overflow:hidden}
.header-cta::before{content:"";display:inline-block;width:16px;height:16px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23062041' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/><polyline points='22,6 12,13 2,6'/></svg>") no-repeat center/contain}
.header-cta:hover{background:var(--accent);color:var(--white)}
.header-cta:hover::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/><polyline points='22,6 12,13 2,6'/></svg>")}
.header-catalog{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.06em;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:4px;padding:9px 14px;transition:.25s}
.header-catalog::before{content:"";display:inline-block;width:14px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/><polyline points='14 2 14 8 20 8'/><line x1='12' y1='18' x2='12' y2='12'/><line x1='9' y1='15' x2='15' y2='15'/></svg>") no-repeat center/contain}
.header-catalog:hover{background:rgba(255,255,255,.1);border-color:var(--accent);color:var(--accent)}
.header-catalog:hover::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322c8ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/><polyline points='14 2 14 8 20 8'/><line x1='12' y1='18' x2='12' y2='12'/><line x1='9' y1='15' x2='15' y2='15'/></svg>")}
.header.scrolled{background:rgba(6,32,63,.97);backdrop-filter:blur(16px);box-shadow:0 2px 24px rgba(0,0,0,.25)}

/* Dropdown Nav (VIP) */
.gnav>ul>li{position:relative}
.gnav .has-dropdown>a::after{content:'▼';display:inline-block;font-size:8px;margin-left:4px;vertical-align:middle;color:rgba(255,255,255,.4);transition:.3s;width:auto;height:auto;border:none;transform:none;position:static;background:none}
.gnav .has-dropdown:hover>a::after{color:var(--accent)}
/* Dropdown — Modern Card Grid (vertical cards, 2 columns) */
.gnav-dropdown{position:absolute;top:100%;left:0;transform:translateY(8px);min-width:880px;background:linear-gradient(160deg,rgba(4,18,38,.985) 0%,rgba(8,32,56,.985) 100%);border-top:3px solid var(--accent);border-radius:0 0 18px 18px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7),0 0 60px -20px rgba(24,182,255,.3);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s,transform .3s;z-index:110;padding:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gnav-dropdown::before{content:"";position:absolute;top:0;left:50%;width:60%;height:3px;background:linear-gradient(90deg,transparent,#7fefff,transparent);transform:translateX(-50%);filter:blur(2px);opacity:.8}
.gnav .has-dropdown:hover .gnav-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.gnav-dropdown a{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 12px 12px;font-size:13.5px;font-weight:700;color:#fff;letter-spacing:.04em;border:1px solid rgba(255,255,255,.06);border-radius:12px;background:rgba(255,255,255,.025);overflow:hidden;text-align:center;transition:background .25s,border-color .25s,transform .25s}
.gnav-dropdown a::before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:linear-gradient(90deg,#18b6ff,#7fefff);opacity:0;transition:opacity .25s}
.gnav-dropdown a:hover{background:linear-gradient(135deg,rgba(24,182,255,.18) 0%,rgba(127,239,255,.06) 100%);border-color:rgba(127,239,255,.45);transform:translateY(-2px)}
.gnav-dropdown a:hover::before{opacity:1}
.gnav-dropdown a::after{display:none}
.gnav-dropdown img{width:100%;height:96px;object-fit:contain;flex-shrink:0;background:transparent;filter:drop-shadow(0 4px 14px rgba(0,0,0,.5));transition:transform .3s}
.gnav-dropdown a:hover img{transform:scale(1.04)}
/* Text-only dropdown — single column compact */
.gnav-dropdown:not(:has(img)){min-width:240px;grid-template-columns:1fr!important;padding:10px}
.gnav-dropdown:not(:has(img)) a{flex-direction:row;padding:13px 16px;background:transparent;border-color:transparent;border-radius:8px;text-align:left}
.gnav-dropdown:not(:has(img)) a:hover{background:rgba(24,182,255,.12);border-color:rgba(127,239,255,.3)}
/* 3-image dropdown (DTC) — fit 3 items exactly */
.gnav-dropdown.gnav-dropdown-3{min-width:660px;grid-template-columns:repeat(3,1fr)}

/* SP Menu Button */
.sp-menu-btn{display:none;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:8px;width:44px;height:44px;position:relative;cursor:pointer;z-index:1200;padding:10px;backdrop-filter:blur(6px);transition:background .25s}
.sp-menu-btn:hover{background:rgba(255,255,255,.14)}
.sp-menu-btn span{display:block;width:100%;height:2px;background:var(--white);position:absolute;left:0;transition:.3s;border-radius:2px}
.sp-menu-btn span:nth-child(1){top:13px;left:10px;right:10px;width:auto}
.sp-menu-btn span:nth-child(2){top:21px;left:10px;right:10px;width:auto}
.sp-menu-btn span:nth-child(3){top:29px;left:10px;right:10px;width:auto}
.sp-menu-btn.open span:nth-child(1){top:21px;transform:rotate(45deg)}
.sp-menu-btn.open span:nth-child(2){opacity:0}
.sp-menu-btn.open span:nth-child(3){top:21px;transform:rotate(-45deg)}

/* SP Rich Menu: 2-column grid override (was 3-col), compact rows */
@media(max-width:1100px){
  .sp-menu-inner{padding:80px 18px 28px!important;position:relative}
  .sp-menu-inner::before{content:"";position:absolute;top:80px;left:18px;right:18px;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(127,239,255,.5) 50%,transparent 100%)}
  .sp-rich-head{display:block;text-align:center;padding:0 0 16px;margin:0 0 14px;border-bottom:1px solid rgba(255,255,255,.08);position:relative}
  .sp-rich-head::after{content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);width:40px;height:2px;background:linear-gradient(90deg,#18b6ff,#7fefff);border-radius:2px}
  .sp-rich-head .sp-rich-co{display:block;font-size:14px;font-weight:800;color:#fff;letter-spacing:.06em;line-height:1.4;margin:0 0 4px}
  .sp-rich-head .sp-rich-co-en{display:block;font-family:var(--en,'Jost'),sans-serif;font-size:10px;font-weight:600;color:#7fefff;letter-spacing:.22em;text-transform:uppercase;margin:0 0 10px;opacity:.85}
  .sp-rich-head .sp-rich-tel-top{display:inline-flex;align-items:center;gap:8px;font-family:var(--en,'Jost'),sans-serif;font-size:22px;font-weight:800;color:#fff;letter-spacing:.04em;text-decoration:none;padding:8px 18px;background:rgba(24,182,255,.12);border:1px solid rgba(127,239,255,.3);border-radius:99px;transition:.25s}
  .sp-rich-head .sp-rich-tel-top:hover,.sp-rich-head .sp-rich-tel-top:active{background:rgba(24,182,255,.22);border-color:#7fefff}
  .sp-rich-head .sp-rich-tel-top svg{width:14px;height:14px;color:#7fefff}
  .sp-rich-head .sp-rich-tel-note{display:block;font-size:10px;color:rgba(255,255,255,.55);letter-spacing:.04em;margin:6px 0 0}
  .sp-rich-grid{grid-template-columns:1fr 1fr!important;gap:6px!important}
  .sp-rich-item{min-height:0!important;padding:10px 12px!important;border-radius:8px;flex-direction:row!important;justify-content:flex-start!important;gap:10px!important;text-align:left!important}
  .sp-rich-item svg{width:18px!important;height:18px!important;flex-shrink:0}
  .sp-rich-item span{font-size:13px!important;line-height:1.3!important}
  .sp-rich-bottom{margin-top:14px!important;gap:8px!important}
  .sp-rich-tel{font-size:18px!important;padding:10px 14px!important}
  .sp-rich-cta{padding:12px 18px!important;font-size:13px!important}
}

/* SP Menu — Rich Grid */
.sp-menu{position:fixed;top:0;left:0;width:100%;height:100vh;background:linear-gradient(180deg,rgba(6,32,63,.98) 0%,rgba(10,45,85,.98) 100%);z-index:99;display:none;align-items:flex-start;justify-content:center;opacity:0;pointer-events:none;transition:.4s;overflow-y:auto}
.sp-menu.open{display:flex;opacity:1;pointer-events:auto}
.sp-menu-inner{width:100%;max-width:400px;padding:100px 24px 40px}
.sp-rich-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.sp-rich-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);transition:.3s;text-align:center;min-height:100px}
.sp-rich-item:active{background:rgba(34,200,255,.15)}
.sp-rich-item svg{width:28px;height:28px;color:var(--accent);flex-shrink:0}
.sp-rich-item span{font-size:12px;font-weight:600;color:rgba(255,255,255,.85);letter-spacing:.06em;line-height:1.3}
.sp-rich-bottom{margin-top:24px;display:flex;flex-direction:column;gap:12px;align-items:center}
.sp-rich-tel{display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--en);font-size:22px;font-weight:700;color:var(--accent);letter-spacing:.02em;padding:12px 0}
.sp-rich-cta{display:block;width:100%;text-align:center;background:var(--white);color:var(--navy);font-size:15px;font-weight:700;padding:16px;letter-spacing:.08em;transition:.3s}
.sp-rich-cta:active{background:var(--accent);color:var(--white)}

/* ===== スマホ固定フッター（HOME/製品一覧/選び方/電話） ===== */
.eb-fixnav{display:none}
@media(max-width:768px){
  .eb-fixnav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:95;background:rgba(6,32,63,.97);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid rgba(127,239,255,.22);box-shadow:0 -4px 18px rgba(0,0,0,.28);padding-bottom:env(safe-area-inset-bottom,0)}
  .eb-fixnav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px 7px;color:rgba(255,255,255,.85);text-decoration:none;font-size:10.5px;font-weight:700;letter-spacing:.02em;line-height:1;transition:.15s;-webkit-tap-highlight-color:transparent}
  .eb-fixnav-item+.eb-fixnav-item{border-left:1px solid rgba(255,255,255,.07)}
  .eb-fixnav-item svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .eb-fixnav-item:active{color:#7fefff;background:rgba(24,182,255,.12)}
  .eb-fixnav-tel{color:#7fefff}
  .eb-fixnav-tel svg{fill:rgba(24,182,255,.16)}
  body{padding-bottom:58px}
}

/* ===== Hero ===== */
.hero{position:relative;min-height:100vh;height:100vh;overflow:hidden;margin-right:0;background:radial-gradient(120% 120% at 78% 20%,#155a9c 0%,#0a3160 42%,#06203f 100%)}
.hero-video-wrap{position:absolute;inset:0;overflow:hidden}
.hero-video{width:100%;height:100%;object-fit:cover}
/* YouTube「風神スライダー動画」を黒帯なしで全面カバー（16:9を画面に合わせて拡大） */
.hero-yt{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100vw;height:56.25vw;min-height:100vh;min-width:177.78vh;border:0;pointer-events:none;z-index:0}
/* 終端固定用の静止画（動画の上に重ね、終了時にフェードイン＝ループさせない） */
.hero-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 1s ease;pointer-events:none;z-index:1}
.hero-video-wrap.ended .hero-poster{opacity:1}
/* Hero Overlay（動画の上に薄い陰影＝白文字の可読性確保。グラデ背景は読込中の下地） */
.hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,38,74,.55) 0%,rgba(11,49,95,.32) 50%,rgba(15,109,181,.22) 100%);z-index:1}
.hero-inner{position:relative;z-index:2;display:flex;align-items:center;max-width:1440px;margin:0 auto;padding:0 48px;height:100%}
.hero-content{width:100%;display:grid;grid-template-columns:1fr 300px;gap:56px;align-items:center}
.hero-label{font-family:var(--en);font-size:14px;font-weight:400;letter-spacing:.25em;color:rgba(255,255,255,.45);margin-bottom:20px}
.hero-catch{margin-bottom:28px}
.hero-catch-sub{font-family:var(--sans);font-size:clamp(16px,2vw,20px);font-weight:700;letter-spacing:.1em;display:block;margin-bottom:12px;color:var(--accent);word-break:keep-all;overflow-wrap:break-word}
.hero-catch-jp{font-family:var(--sans);font-size:clamp(30px,4vw,48px);font-weight:900;letter-spacing:.04em;line-height:1.35;color:var(--white);display:block}
.hero-sub{font-size:16px;font-weight:400;line-height:2;color:rgba(255,255,255,.8);margin-bottom:24px;letter-spacing:.06em}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}
.hero-tag{font-size:13px;font-weight:500;color:var(--tag-color);background:var(--tag-bg);border:1px solid var(--tag-border);padding:6px 16px;letter-spacing:.06em}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap}
.hero-advisor{margin-top:24px;max-width:540px;padding:18px 20px;background:linear-gradient(135deg,rgba(24,182,255,.14) 0%,rgba(127,239,255,.06) 100%);border:1px solid rgba(127,239,255,.35);border-radius:8px;backdrop-filter:blur(2px)}
.hero-advisor-badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.06em;color:#7fefff;margin-bottom:8px}
.hero-advisor-badge svg{flex-shrink:0;color:#7fefff}
.hero-advisor-text{font-size:13px;line-height:1.85;color:rgba(255,255,255,.92);margin:0}
.hero-advisor-text strong{color:#fff;font-weight:700}
.hero-right{display:flex;flex-direction:column;align-items:center;gap:16px}
.hero-gauge{position:relative;width:240px;height:240px}
.gauge-svg{width:100%;height:100%;filter:drop-shadow(0 0 20px rgba(24,182,255,.15))}
.gauge-track,.gauge-fill,.gauge-glow{transition:stroke-dashoffset .1s linear}
.gauge-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:8px}
.gauge-num{font-family:var(--en);font-size:42px;font-weight:700;color:var(--white);letter-spacing:-.01em;line-height:1}
.gauge-unit{font-family:var(--en);font-size:13px;font-weight:500;color:rgba(255,255,255,.5);margin-top:4px}
.gauge-label{font-size:12px;font-weight:500;color:rgba(255,255,255,.4);letter-spacing:.14em;margin-top:6px}
.hero-info-cards{display:flex;flex-direction:column;gap:8px;width:100%}
.hero-info-card{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.06);padding:12px 16px;backdrop-filter:blur(6px)}
.hero-info-card svg{flex-shrink:0;opacity:.8}
.hero-info-num{font-family:var(--en);font-size:18px;font-weight:700;color:var(--white);display:block;line-height:1.2}
.hero-info-num small{font-size:12px;font-weight:500;color:rgba(255,255,255,.5);margin-left:2px}
.hero-info-label{font-size:11px;color:rgba(255,255,255,.45);letter-spacing:.08em;display:block;margin-top:2px}

/* ===== Buttons ===== */
.btn-primary{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:16px;font-weight:700;letter-spacing:.02em;color:#fff;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%);padding:16px 36px;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;border-bottom:3px solid rgba(0,0,0,.25);min-height:56px;overflow:hidden;box-shadow:0 4px 15px -5px rgba(6,32,63,.45)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px -5px rgba(6,32,63,.55);background:linear-gradient(135deg,var(--navy-mid) 0%,var(--navy-light) 100%)}
.btn-primary::after{content:'';position:absolute;top:-50%;left:-60%;width:50px;height:200%;background:rgba(255,255,255,.3);transform:rotate(25deg);transition:none}
.btn-primary:hover::after{left:130%;transition:all .6s ease-in-out}
.btn-outline-white{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:600;letter-spacing:.06em;color:var(--white);border:2px solid rgba(255,255,255,.45);padding:16px 36px;transition:.3s;min-height:56px}
.btn-outline-white:hover{background:var(--white);color:var(--navy);border-color:var(--white)}
.btn-outline-light{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:600;letter-spacing:.06em;color:rgba(255,255,255,.85);border:2px solid rgba(255,255,255,.35);padding:16px 36px;transition:.3s;min-height:56px}
.btn-outline-light:hover{background:var(--white);color:var(--navy);border-color:var(--white)}
.btn-dark{display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:700;letter-spacing:.02em;color:var(--white);background:var(--navy);padding:16px 40px;transition:all .3s;border:1px solid rgba(255,255,255,.1);min-height:56px;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.btn-dark:hover{background:#1e293b;border-color:rgba(255,255,255,.4);transform:translateY(-2px)}
.btn-text{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;letter-spacing:.06em;color:var(--primary);transition:.3s}
.btn-text:hover{color:var(--accent)}
.btn-accent-sm{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--white);background:var(--navy);padding:12px 24px;transition:.3s}
.btn-accent-sm:hover{background:var(--navy-mid)}
.arr{font-size:16px;transition:.3s;display:inline-block}
a:hover .arr{transform:translateX(4px)}

/* ===== Section common ===== */
.sec-label{font-family:var(--en);font-size:13px;font-weight:500;letter-spacing:.25em;color:var(--accent);margin-bottom:8px}
.sec-label.light{color:rgba(255,255,255,.4)}
.sec-label.center{text-align:center}
.sec-heading{font-family:var(--sans);font-size:clamp(28px,3.2vw,36px);font-weight:900;letter-spacing:.08em;color:var(--navy);margin-bottom:var(--sec-gap);line-height:1.4}
.sec-heading.light{color:var(--white)}
.sec-heading.center{text-align:center}

/* ===== About ===== */
.about{padding:110px 0 100px;background:var(--navy);position:relative;overflow:hidden;margin-right:0}
.about>.container{position:relative;z-index:1}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;margin-bottom:72px}
.about .sec-label{color:rgba(255,255,255,.4)}
.about .sec-heading{color:var(--white);margin-bottom:24px}
.about-lead{font-size:15px;line-height:2;color:rgba(255,255,255,.65);letter-spacing:.04em}
.about-video{overflow:hidden;aspect-ratio:16/9}
.about-video-link{display:block;position:relative;width:100%;height:100%}
.about-video-link img{width:100%;height:100%;object-fit:cover}
.play-icon-sm{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;opacity:.85;transition:.3s;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}
.play-icon-sm svg{width:100%;height:100%}
.about-video-link:hover .play-icon-sm{opacity:1;transform:translate(-50%,-50%) scale(1.12)}
.about-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.about-metric{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--card-bg);border:1px solid var(--card-border);padding:32px 16px;min-height:180px;opacity:1;transform:none;transition:.3s}
.about-metric:hover{border-color:rgba(34,200,255,.3);transform:translateY(-4px)}
.about-metric-icon{display:flex;justify-content:center;width:32px;height:32px;margin-bottom:14px;flex-shrink:0}
.about-metric-icon svg{width:32px;height:32px}
.about-metric-num{font-family:var(--en);font-size:56px;font-weight:900;color:var(--white);line-height:1.1;height:62px;display:flex;align-items:baseline;justify-content:center;letter-spacing:-.02em}
.about-metric-unit{font-size:15px;font-weight:700;color:rgba(255,255,255,.5);margin-top:2px;height:20px;display:flex;align-items:center;justify-content:center}
.about-metric-label{font-size:13px;color:rgba(255,255,255,.5);letter-spacing:.06em;margin-top:8px;height:18px;display:flex;align-items:center;justify-content:center}

/* ===== Strengths ===== */
.strengths{padding:100px 0;background:var(--white);position:relative;overflow:hidden;margin-right:0}
.strengths .sec-label{color:var(--primary)}
.strengths .sec-heading{color:var(--navy)}
.str-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.str-card{position:relative;display:flex;flex-direction:column;background:var(--ice);border:1px solid var(--border-dark);padding:36px 32px 32px;min-height:280px;transition:.3s}
.str-card.visible{opacity:1;transform:translateY(0)}
.str-card:hover{background:var(--white);transform:translateY(-6px);box-shadow:0 12px 40px rgba(8,38,74,.12)}
.str-num{font-family:var(--en);font-size:56px;font-weight:900;color:var(--primary);opacity:.2;line-height:1;margin-bottom:16px;flex-shrink:0}
.str-card h3{font-size:16px;font-weight:900;color:var(--navy);letter-spacing:.04em;margin-bottom:14px;line-height:1.5;min-height:48px;display:flex;align-items:flex-start}
.str-card p{font-size:13px;color:var(--text-sub);line-height:1.9;letter-spacing:.04em;margin-top:auto}

/* Section Mini CTA */
.section-mini-cta{text-align:center;margin-top:48px}

/* ===== News ===== */
.news{padding:72px 0;background:var(--white);margin-right:0}
.news .sec-heading{margin-bottom:28px}
.news-list{border-top:1px solid var(--border-dark)}
.nitem{display:grid;grid-template-columns:120px 90px 1fr;align-items:center;gap:16px;padding:18px 8px;border-bottom:1px solid var(--border-dark);border-left:3px solid transparent;transition:.3s}
.nitem:hover{background:var(--ice);border-left-color:var(--accent);padding-left:16px}
.nitem time{font-family:var(--en);font-size:14px;color:var(--text-sub);letter-spacing:.04em}
.ntag{font-size:12px;font-weight:700;color:var(--navy-mid);background:#eef4fa;border:1px solid #c3d5e6;padding:3px 12px;text-align:center;letter-spacing:.04em}
.ntag-event{color:#fff;background:var(--primary);border-color:var(--primary)}
.ntxt{font-size:15px;font-weight:500;color:var(--text);letter-spacing:.04em}
.nitem:hover .ntxt{color:var(--primary)}
.news-more{text-align:right;margin-top:20px}

/* ===== Products ===== */
.products{padding:100px 0;background:var(--navy);position:relative;overflow:hidden;margin-right:0}
.products-intro{text-align:center;font-size:15px;color:rgba(255,255,255,.55);margin-top:-28px;margin-bottom:44px;letter-spacing:.04em}
.products-guide{display:flex;align-items:center;justify-content:center;gap:24px;background:rgba(24,182,255,.08);border:1px solid rgba(24,182,255,.2);padding:20px 36px;margin-bottom:52px}
.products-guide-text{font-size:16px;font-weight:700;color:var(--white);letter-spacing:.04em}
.pcat{margin-bottom:56px}
.pcat-name{font-family:var(--en);font-size:18px;font-weight:600;letter-spacing:.12em;color:var(--white);margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.07)}
.pcat-name span{font-family:var(--sans);font-size:13px;font-weight:400;letter-spacing:.06em;color:rgba(255,255,255,.45);margin-left:16px}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.pcard{position:relative;display:flex;flex-direction:column;background:var(--card-bg);border:1px solid var(--card-border);overflow:hidden;transition:.3s}
.pcard.visible{opacity:1;transform:translateY(0)}
.pcard:hover{background:rgba(255,255,255,.12);transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.pcard-img{height:220px;display:flex;align-items:center;justify-content:center;padding:16px;flex-shrink:0}
.pcard-img img{max-height:200px;max-width:100%;width:auto;object-fit:contain;transition:.3s}
.pcard:hover .pcard-img img{transform:scale(1.05)}
.pcard-body{display:flex;flex-direction:column;padding:0 24px 24px;flex:1}
.pcard-series{font-family:var(--en);font-size:10px;letter-spacing:.2em;color:var(--accent);margin-bottom:4px;height:14px;flex-shrink:0}
.pcard h4{font-size:20px;font-weight:700;color:var(--white);letter-spacing:.04em;margin-bottom:6px;flex-shrink:0}
.pcard-desc{font-size:13px;color:rgba(255,255,255,.55);line-height:1.5;margin-bottom:12px;height:20px;overflow:hidden;flex-shrink:0}
.pcard-specs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px;min-height:30px;align-content:flex-start;flex-shrink:0}
.pcard-tag{font-size:11px;font-weight:500;color:var(--tag-color);background:var(--tag-bg);border:1px solid var(--tag-border);padding:4px 12px;letter-spacing:.04em}
.pcard-spec-label{font-size:12px;color:rgba(255,255,255,.45);letter-spacing:.06em}
.pcard-spec-val{font-family:var(--en);font-size:18px;font-weight:700;color:var(--accent);letter-spacing:.02em}
.pcard-wind{padding:12px 0;border-top:1px solid rgba(255,255,255,.08);flex-shrink:0}
.pcard-wind-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.wind-bar{position:relative;width:100%;height:14px;background:rgba(255,255,255,.08);overflow:hidden}
.wind-bar-fill{position:absolute;top:0;left:0;height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width 1.4s cubic-bezier(.22,1,.36,1)}
.wind-bar-fill.animated{background:linear-gradient(90deg,var(--primary),var(--accent))}
@keyframes windStripe{0%{background-position:0 0}100%{background-position:32px 0}}
.pcard-detail{font-size:14px;font-weight:600;color:var(--accent);letter-spacing:.06em;margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;height:40px;flex-shrink:0;transition:.3s}
.pcard:hover .pcard-detail{color:#5cd4ff}
.products-cta{display:flex;justify-content:center;gap:20px;margin-top:52px;flex-wrap:wrap}

/* ===== Cases ===== */
.cases{padding:100px 0;background:var(--white);margin-right:0;position:relative;overflow:hidden}
.cases-intro{text-align:center;font-size:16px;color:var(--text-sub);margin-top:-28px;margin-bottom:52px;letter-spacing:.04em}
.cases-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}
.ccard{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--white);border:1px solid var(--border-dark);transition:.3s}
.ccard.visible{opacity:1;transform:translateY(0)}
.ccard:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover)}
.ccard-img{position:relative;overflow:hidden;aspect-ratio:16/9;flex-shrink:0}
.ccard-img img{width:100%;height:100%;object-fit:cover;transition:.4s}
.ccard:hover .ccard-img img{transform:scale(1.05)}
.ctag{position:absolute;top:14px;left:14px;font-size:12px;font-weight:600;color:var(--white);background:var(--accent);padding:5px 16px;letter-spacing:.06em}
.ccard-body{padding:24px 28px;flex:1;display:flex;flex-direction:column}
.ccard-area{font-size:12px;color:var(--text-sub);letter-spacing:.06em;margin-bottom:8px;height:18px;flex-shrink:0}
.ccard-body h4{font-size:18px;font-weight:700;letter-spacing:.04em;margin-bottom:10px;line-height:1.5;color:var(--navy);height:54px;display:flex;align-items:flex-start;overflow:hidden;flex-shrink:0}
.ccard-result{font-size:14px;color:var(--navy);font-weight:600;line-height:1.6;margin-bottom:14px;flex-shrink:0}
.ccard-outcome-badge{position:absolute;bottom:14px;right:14px;font-size:12px;font-weight:700;color:var(--white);background:rgba(24,182,255,.9);padding:6px 16px;letter-spacing:.04em;backdrop-filter:blur(4px)}
.ccard-challenge{font-size:13px;color:var(--text-sub);line-height:1.6;margin-bottom:8px;flex-shrink:0}
.ccard-link{font-size:14px;font-weight:600;color:var(--accent);letter-spacing:.06em;transition:.3s;margin-top:auto;height:20px;flex-shrink:0}
.ccard:hover .ccard-link{color:var(--primary)}
.cases-ctas{display:flex;justify-content:center;align-items:center;gap:36px;margin-top:56px;flex-wrap:wrap}

/* ===== Service ===== */
.service{padding:88px 0;background:var(--ice);margin-right:0}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.svc-card{position:relative;display:flex;flex-direction:column;align-items:center;background:var(--white);padding:36px 20px 28px;text-align:center;border:1px solid var(--border-dark);transition:.3s;min-height:240px}
.svc-card.visible{opacity:1;transform:translateY(0)}
.svc-card:hover{border-color:var(--accent);box-shadow:0 12px 40px rgba(15,109,181,.15);transform:translateY(-8px)}
.svc-icon{width:48px;height:48px;margin-bottom:16px;flex-shrink:0}
.svc-card h3{font-size:15px;font-weight:700;letter-spacing:.04em;margin-bottom:8px;color:var(--navy);height:22px;display:flex;align-items:center;flex-shrink:0}
.svc-card p{font-size:13px;color:var(--text-sub);line-height:1.6;height:21px;flex-shrink:0}
.svc-arr{font-family:var(--en);font-size:18px;color:var(--accent);transition:.3s;display:inline-block;margin-top:auto;padding-top:12px}
.svc-card:hover .svc-arr{transform:translateX(4px)}

/* ===== Movie ===== */
.movie{padding:88px 0;background:var(--white);margin-right:0}
.movie-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.movie-card{display:flex;flex-direction:column;overflow:hidden;transition:.3s}
.movie-card.visible{opacity:1;transform:translateY(0)}
.movie-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.movie-thumb{position:relative;overflow:hidden;aspect-ratio:16/9;flex-shrink:0}
.movie-thumb img{width:100%;height:100%;object-fit:cover;transition:.4s}
.movie-card:hover .movie-thumb img{transform:scale(1.03)}
.play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;opacity:.85;transition:.3s;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}
.play-icon svg{width:100%;height:100%}
.movie-card:hover .play-icon{opacity:1;transform:translate(-50%,-50%) scale(1.1)}
.movie-card h4{font-size:15px;font-weight:600;color:var(--navy);letter-spacing:.04em;padding:16px 4px 6px;min-height:42px;display:flex;align-items:flex-start}
.movie-card p{font-size:12px;color:var(--text-sub);padding:0 4px 8px;line-height:1.6;min-height:28px}

/* ===== Company ===== */
.company{padding:88px 0;background:var(--ice);margin-right:0}
.co-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.co-card{display:block;position:relative;overflow:hidden;aspect-ratio:4/3;transition:.4s}
.co-card.visible{opacity:1;transform:translateY(0)}
.co-card img{width:100%;height:100%;object-fit:cover;transition:.4s}
.co-card:hover img{transform:scale(1.05)}
.co-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,38,74,.75) 100%);display:flex;align-items:flex-end;justify-content:space-between;padding:24px;transition:.3s}
.co-card:hover .co-overlay{background:linear-gradient(180deg,transparent 20%,rgba(8,38,74,.85) 100%)}
.co-overlay h4{font-size:16px;font-weight:700;color:var(--white);letter-spacing:.06em}
.co-overlay span{font-family:var(--en);font-size:20px;color:var(--white);transition:.3s}
.co-card:hover .co-overlay span{transform:translateX(4px)}

/* ===== Final CTA ===== */
.final-cta{padding:100px 0;background:linear-gradient(135deg,#061d3a 0%,var(--navy) 40%,var(--navy-mid) 100%);position:relative;overflow:hidden;margin-right:0}
.final-cta::before{content:'';position:absolute;top:-40%;right:-15%;width:700px;height:700px;background:radial-gradient(circle,rgba(24,182,255,.1) 0%,transparent 65%);pointer-events:none}
.final-cta-inner-v2{position:relative;z-index:1;text-align:center}
.final-cta-label{font-family:var(--en);font-size:13px;font-weight:500;letter-spacing:.25em;color:#fff;margin-bottom:12px}
.final-cta-headline h2{font-size:clamp(24px,2.8vw,32px);font-weight:900;color:var(--white);line-height:1.65;letter-spacing:.04em;margin-bottom:16px}
.final-cta-desc{font-size:15px;color:#fff;line-height:1.9;letter-spacing:.04em;margin-bottom:48px}
.final-cta-actions{display:grid;grid-template-columns:1fr 1fr;gap:2px;max-width:800px;margin:0 auto}
.final-cta-card{position:relative;background:var(--card-bg);border:1px solid var(--card-border);padding:36px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;transition:.3s}
.final-cta-card:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.35)}
.final-cta-card-icon{width:48px;height:48px;margin-bottom:16px}
.final-cta-card-icon svg{width:100%;height:100%}
.final-cta-card h3{font-size:18px;font-weight:700;color:var(--white);letter-spacing:.04em;margin-bottom:8px}
.final-cta-card p{font-size:13px;color:#fff;line-height:1.6;margin-bottom:20px}
.btn-cta-primary{position:relative;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--navy);background:#fff;padding:0 32px;letter-spacing:.02em;transition:all .3s;text-align:center;height:56px;width:100%;overflow:hidden;box-shadow:0 4px 15px -5px rgba(0,0,0,.3);border-bottom:3px solid rgba(0,0,0,.15)}
.btn-cta-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px -5px rgba(0,0,0,.4);background:#f5f8fc}
.btn-cta-primary::after{content:'';position:absolute;top:-50%;left:-60%;width:50px;height:200%;background:rgba(255,255,255,.3);transform:rotate(25deg);transition:none}
.btn-cta-primary:hover::after{left:130%;transition:all .6s ease-in-out}
.btn-cta-secondary{display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;color:var(--white);border:2px solid rgba(255,255,255,.4);padding:0 32px;letter-spacing:.06em;transition:.3s;text-align:center;height:52px;width:100%}
.btn-cta-secondary:hover{background:var(--white);color:var(--navy);border-color:var(--white)}
.final-cta-tel-v2{grid-column:1/-1;text-align:center;padding:24px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;gap:20px}
.final-cta-tel-v2 .final-cta-tel-label{font-size:14px;color:#fff;letter-spacing:.06em}
.final-cta-tel-v2 .final-cta-tel-num{font-family:var(--en);font-size:clamp(26px,2.8vw,36px);font-weight:700;color:var(--white);letter-spacing:.04em;transition:.3s;white-space:nowrap}
.final-cta-tel-v2 .final-cta-tel-num:hover{color:rgba(255,255,255,.75)}
.final-cta-tel-v2 .final-cta-tel-note{font-size:12px;color:#fff}

/* ===== Footer ===== */
.footer{background:var(--navy);padding:72px 0 0;margin-right:0}
.ft-top{display:flex;justify-content:space-between;gap:60px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.08)}
.ft-brand{max-width:280px}
.ft-logo{height:40px;width:auto;margin-bottom:16px}
.ft-co{font-size:14px;font-weight:700;color:var(--white);letter-spacing:.06em;margin-bottom:12px}
/* Footer Brand */
@keyframes textShimmer{0%{background-position:0% 50%}100%{background-position:100% 50%}}
.ft-co-shimmer{color:var(--white)}
.ft-addr{font-size:12px;color:#fff;line-height:1.8;margin-bottom:8px}
.ft-tel{font-size:12px;color:#fff}
.ft-invoice{font-size:11px;color:#fff;margin-top:8px}
.ft-sns{display:flex;gap:12px;margin-top:22px}
.ft-sns a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.72);transition:.25s}
.ft-sns a svg{width:18px;height:18px}
.ft-sns a:hover{transform:translateY(-2px);background:#fff;border-color:#fff}
.ft-sns a.sns-x:hover{color:#0e1b2d}
.ft-sns a.sns-yt:hover{color:#ff0000}
.ft-rental{max-width:280px}
.ft-rental h5{font-size:13px;font-weight:700;color:var(--white);letter-spacing:.06em;margin-bottom:10px}
.ft-rental-co,.ft-rental-addr,.ft-rental-tel{font-size:12px;color:#fff;line-height:1.8}
.ft-navs{display:flex;gap:48px}
.ft-nav h5{font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.ft-nav li{margin-bottom:8px}
.ft-nav a{font-size:12px;color:#fff;transition:.3s;letter-spacing:.04em}
.ft-nav a:hover{color:var(--white)}
.ft-bottom{display:flex;align-items:center;justify-content:space-between;padding:20px 0}
.ft-bottom a{font-size:11px;color:#fff;letter-spacing:.04em;transition:.3s}
.ft-bottom a:hover{color:var(--accent)}
.ft-bottom p{font-size:11px;color:#fff;letter-spacing:.08em;font-family:var(--en)}

/* ===== Scroll Reveal ===== */
@keyframes revealUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(28px)}
.reveal.visible{animation:revealUp .7s cubic-bezier(.22,1,.36,1) forwards}
/* Stagger delay */
.reveal:nth-child(2){animation-delay:.08s}
.reveal:nth-child(3){animation-delay:.16s}
.reveal:nth-child(4){animation-delay:.24s}
.reveal:nth-child(5){animation-delay:.32s}
.reveal:nth-child(6){animation-delay:.40s}
.reveal:nth-child(7){animation-delay:.48s}
.reveal:nth-child(8){animation-delay:.56s}
.reveal.visible:nth-child(2){animation-delay:.08s}
.reveal.visible:nth-child(3){animation-delay:.16s}
.reveal.visible:nth-child(4){animation-delay:.24s}
.reveal.visible:nth-child(5){animation-delay:.32s}
.reveal.visible:nth-child(6){animation-delay:.40s}
.reveal.visible:nth-child(7){animation-delay:.48s}
.reveal.visible:nth-child(8){animation-delay:.56s}

/* ===== Responsive - Tablet ===== */
@media(max-width:1024px){
  :root{--side-w:0px}
  .fixed-side{display:none}
  .marquee-bar{margin-right:0}
  .hero,.about,.strengths,.products,.cases,.news,.service,.movie,.company,.final-cta,.footer{margin-right:0}
  .header{width:100%}
  .container{padding:0 28px}
  .header-inner{height:76px}
  .hero-content{grid-template-columns:1fr;gap:40px}
  .hero-right{flex-direction:row;align-items:center;gap:24px;width:100%}
  .hero-gauge{width:180px;height:180px;flex-shrink:0}
  .gauge-num{font-size:32px}
  .hero-info-cards{flex:1;gap:6px}
  .about-grid{grid-template-columns:1fr;gap:40px}
  .about-metrics{grid-template-columns:repeat(2,1fr)}
  .str-grid{grid-template-columns:repeat(2,1fr)}
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .cases-grid{grid-template-columns:repeat(2,1fr)}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .co-grid{grid-template-columns:repeat(2,1fr)}
  .nitem{grid-template-columns:100px 80px 1fr}
  .ft-top{flex-direction:column}
  .ft-navs{flex-wrap:wrap;gap:28px}
}

@media(max-width:1100px){
  .header-right{display:none}
  .sp-menu-btn{display:block}
}
@media(max-width:768px){
  .container{padding:0 20px}
  .header-inner{padding:12px 20px;height:64px}
  .gnav,.header-right{display:none}
  .sp-menu-btn{display:block}
  .logo-img{height:30px}
  .marquee-bar{height:32px}
  .marquee-track span{font-size:11px;padding:0 32px}
  .hero{min-height:auto;max-height:none;height:auto;padding:100px 0 48px}
  .hero-yt{display:none}/* モバイルは動画非表示（軽量）＝静止画(55KB)を常時表示 */
  /* 縦長ヒーロー全面を coverで埋めると拡大しすぎ→画像エリアを上部52vhに抑えてズーム軽減、下はグラデ */
  .hero-video-wrap{height:52vh;bottom:auto}
  .hero-video-wrap::after{content:"";position:absolute;left:0;right:0;bottom:0;height:45%;background:linear-gradient(to bottom,rgba(6,32,63,0),#06203f);z-index:2}
  .hero-poster{opacity:1;object-position:center}
  .hero-inner{padding:0 20px;height:auto}
  .hero-content{grid-template-columns:1fr;gap:32px}
  .hero-catch-jp{font-size:26px}
  .hero-sub{font-size:14px;line-height:1.9}
  .hero-ctas{flex-direction:column;gap:12px;width:100%}
  .hero-ctas .btn-primary,.hero-ctas .btn-outline-white{width:100%;justify-content:center;min-height:52px}
  .hero-right{flex-direction:column;align-items:center;gap:16px;width:100%}
  .hero-gauge{width:180px;height:180px}
  .gauge-num{font-size:32px}
  .hero-info-cards{flex-direction:row;flex-wrap:wrap;width:100%;gap:8px}
  .hero-info-card{flex:1;min-width:140px}
  .about{padding:64px 0}
  .about-grid{gap:32px}
  .about-metrics{grid-template-columns:repeat(2,1fr);gap:12px}
  .about-metric{padding:24px 12px;min-height:150px}
  .about-metric-num{font-size:30px;height:34px}
  .strengths{padding:64px 0}
  .str-grid{grid-template-columns:1fr}
  .str-card{min-height:auto}
  .str-card h3{min-height:auto}
  .news{padding:48px 0}
  .nitem{grid-template-columns:1fr;gap:6px}
  .nitem time{font-size:12px}
  .ntag{display:inline-block;width:fit-content}
  .products{padding:64px 0}
  .products-guide{flex-direction:column;gap:12px;text-align:center;padding:20px}
  .pgrid{grid-template-columns:1fr}
  .pcard-img{height:180px}
  .pcard-desc{height:auto}
  .pcard-specs{min-height:auto}
  .products-cta{flex-direction:column;align-items:center}
  .cases{padding:64px 0}
  .cases-grid{grid-template-columns:1fr}
  .ccard-body h4{height:auto}
  .cases-ctas{flex-direction:column;align-items:center;gap:16px}
  .service{padding:56px 0}
  .svc-grid{grid-template-columns:1fr}
  .svc-card{min-height:auto}
  .movie{padding:56px 0}
  .movie-grid{grid-template-columns:1fr}
  .company{padding:56px 0}
  .co-grid{grid-template-columns:1fr}
  .final-cta{padding:60px 0}
  .final-cta-headline h2{font-size:22px}
  .final-cta-actions{grid-template-columns:1fr;gap:2px}
  .final-cta-tel-v2{flex-direction:column;gap:8px}
  .sec-heading{font-size:24px;margin-bottom:32px}
  .ft-navs{gap:20px}
  .ft-nav{width:45%}
  .ft-bottom{flex-direction:column;gap:8px;text-align:center;padding:16px 0}
  .outline-text{display:none}
}

.pc-only{display:inline}
@media(max-width:768px){.pc-only{display:none}}
/* ===================== Sub Pages — Template v3 (PC強化) ===================== */

/* Page Header */
.page-header{position:relative;padding:140px 0 60px;background:linear-gradient(135deg,#020617 0%,#0f172a 100%);overflow:hidden;text-align:center}
.page-header::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.page-header::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 31px,rgba(255,255,255,.025) 31px,rgba(255,255,255,.025) 32px),repeating-linear-gradient(90deg,transparent,transparent 31px,rgba(255,255,255,.025) 31px,rgba(255,255,255,.025) 32px);pointer-events:none;opacity:.6}
.page-header-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.25}
.page-header .container{position:relative;z-index:1}
.page-header .sec-label{color:rgba(255,255,255,.55);font-size:13px;letter-spacing:.42em;font-weight:500}
.page-header-title{font-size:clamp(24px,4vw,46px);font-weight:800;color:var(--white);letter-spacing:.04em;line-height:1.3;font-family:var(--en);margin-bottom:16px;display:inline-flex;align-items:center;gap:1.2rem;max-width:100%;flex-wrap:wrap;justify-content:center}
.page-header-title::before,.page-header-title::after{content:'';width:48px;height:1px;flex-shrink:0;background:rgba(255,255,255,.25)}
@media(max-width:768px){
  .page-header{padding:108px 0 44px}
  .page-header-title{font-size:clamp(20px,5.6vw,28px);gap:.6rem;letter-spacing:.02em;padding:0 16px;line-height:1.4;word-break:keep-all;overflow-wrap:anywhere}
  .page-header-title::before,.page-header-title::after{width:24px}
  .page-header .sec-label{font-size:11px;letter-spacing:.32em}
}
.page-header-title .jp{font-family:var(--sans);font-size:.45em;font-weight:700;color:#94a3b8}
.page-header-sub{font-size:15px;color:#94a3b8;letter-spacing:.04em;display:flex;justify-content:center;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-top:1.5rem}
.page-header-sub .spec-sep{width:1px;height:14px;background:rgba(148,163,184,.3);display:inline-block}

/* Breadcrumb */
.breadcrumb{padding:14px 0;background:var(--ice);border-bottom:1px solid var(--border-dark)}
.breadcrumb-list{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--navy);flex-wrap:wrap;font-weight:600;line-height:1.5}
.breadcrumb-list a{color:var(--navy);transition:.2s;text-decoration:none}
.breadcrumb-list a:hover{color:var(--primary);text-decoration:underline}
.breadcrumb-list>span{color:var(--navy);font-weight:600}
.breadcrumb-list>span[aria-current="page"]{color:var(--navy);opacity:.7;font-weight:600}
.breadcrumb-list>span:not([aria-current]){opacity:.4;font-weight:400;font-family:var(--en);font-size:14px;line-height:1}

/* Sub Page Content */
.sub-content{padding:80px 0 100px}
.sub-content .ccard,.sub-content .pcard,.sub-content .str-card,.sub-content .svc-card,.sub-content .movie-card,.sub-content .co-card,.sub-content .about-metric{opacity:1;transform:none}
.sub-content .container{max-width:1380px}

/* Two Column */
.sub-grid{display:grid;grid-template-columns:1fr 310px;gap:40px;align-items:start}
.sub-grid.sub-grid-full{grid-template-columns:1fr;gap:0}

/* WPBakery / Ultimate Add-ons compat (verbatim official content) */
.sub-main .vc_row{display:flex;flex-wrap:wrap;gap:24px;margin:24px 0;align-items:flex-start}
.sub-main .vc_row.vc_inner{margin:12px 0;gap:16px}
.sub-main .vc_column_container,.sub-main .wpb_column{flex:1;min-width:200px;box-sizing:border-box}
.sub-main .vc_col-sm-6,.sub-main .vc_col-md-6{flex:0 0 calc(50% - 12px);min-width:280px}
.sub-main .vc_col-sm-4,.sub-main .vc_col-md-4{flex:0 0 calc(33.333% - 16px);min-width:200px}
.sub-main .vc_col-sm-3,.sub-main .vc_col-md-3{flex:0 0 calc(25% - 18px);min-width:180px}
.sub-main .vc_col-sm-12,.sub-main .vc_col-md-12{flex:0 0 100%}
.sub-main .vc_column-inner,.sub-main .wpb_wrapper{padding:0}
.sub-main .wpb_text_column{margin-bottom:18px;line-height:1.85;color:var(--text)}
.sub-main .wpb_text_column p{margin-bottom:14px;line-height:1.85;color:var(--text)}
.sub-main .wpb_text_column strong{color:var(--navy);font-weight:700}
.sub-main .wpb_single_image{margin-bottom:18px;text-align:center}
.sub-main .wpb_single_image img,.sub-main .vc_single_image-wrapper img{max-width:100%;height:auto;display:inline-block;border-radius:6px}
.sub-main .vc_single_image-wrapper{display:inline-block;border-radius:6px;overflow:hidden}
.sub-main .vc_box_border_grey{border:1px solid var(--border-dark)}
.sub-main h2,.sub-main h3,.sub-main h4{color:var(--navy);letter-spacing:.04em}
.sub-main h2{font-size:clamp(22px,2.6vw,30px);font-weight:800;border-left:5px solid var(--navy);padding-left:14px;margin:48px 0 20px;line-height:1.45}
.sub-main h3{font-size:clamp(18px,2.1vw,24px);font-weight:800;margin:32px 0 16px;line-height:1.5}
.sub-main h4{font-size:15px;font-weight:700;margin:14px 0 8px;line-height:1.5}
.sub-main .uvc-heading{margin:32px 0 18px;text-align:center}
.sub-main .uvc-headings-line{display:none}
.sub-main .uvc-heading-spacer{margin:8px 0 24px}
.sub-main .aio-icon-component{margin:18px 0;text-align:center}
.sub-main .aio-icon-box{padding:16px;border-radius:8px;background:#fff}
.sub-main .aio-icon{display:inline-block;margin:0 auto 8px}
.sub-main .aio-icon-default{margin-bottom:6px}
.sub-main .ult-just-icon-wrapper{margin-bottom:10px}
.sub-main .aio-icon-header h4{font-size:15px;font-weight:600;color:var(--text-sub);margin:6px 0;letter-spacing:.04em}
.sub-main .aio-icon-description{font-size:18px;font-weight:800;color:var(--navy);line-height:1.5;margin-top:4px}
.sub-main .info-list-icon-list{list-style:none;padding:0}
.sub-main .info-list-icon-list li{padding:8px 0;border-bottom:1px solid var(--border-dark);line-height:1.7}
.sub-main .vc_btn3-container{margin:18px 0}
.sub-main .vc_btn3{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:var(--navy);color:#fff;border-radius:6px;text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.04em;transition:.2s}
.sub-main .vc_btn3:hover{background:var(--navy-mid);transform:translateY(-1px)}
.sub-main figure.wpb_wrapper{margin:0}
.sub-main .carousel-shortcode{margin:24px 0}
@media(max-width:768px){
  .sub-main .vc_col-sm-6,.sub-main .vc_col-md-6,
  .sub-main .vc_col-sm-4,.sub-main .vc_col-md-4,
  .sub-main .vc_col-sm-3,.sub-main .vc_col-md-3{flex:0 0 100%;min-width:0}
}
.sub-main{}
.sub-sidebar{position:sticky;top:100px;display:flex;flex-direction:column;gap:12px}

/* Sidebar CTA */
.side-cta{position:relative;background:linear-gradient(160deg,var(--navy) 0%,var(--navy-mid) 100%);border:1px solid var(--navy);border-radius:10px;padding:24px 20px 22px;text-align:center;color:#fff;overflow:hidden;box-shadow:0 8px 24px -10px rgba(6,32,63,.4)}
.side-cta::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,transparent,transparent 23px,rgba(255,255,255,.025) 23px,rgba(255,255,255,.025) 24px);pointer-events:none}
.side-cta>*{position:relative;z-index:1}
.side-cta-eyebrow{display:inline-block;font-family:var(--en);font-size:10px;font-weight:700;letter-spacing:.32em;color:rgba(255,255,255,.55);margin-bottom:6px;text-transform:uppercase}
.side-cta h4{font-size:16px;font-weight:800;color:#fff;letter-spacing:.06em;margin-bottom:8px;line-height:1.4}
.side-cta p{font-size:12px;color:rgba(255,255,255,.7);margin-bottom:14px;line-height:1.65}
.side-cta-tel{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:6px;font-family:var(--en);font-size:24px;font-weight:800;color:#fff;letter-spacing:.04em;text-decoration:none;transition:.2s}
.side-cta-tel::before{content:"";width:14px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'><path d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z'/></svg>") center/contain no-repeat;opacity:.85}
.side-cta-tel:hover{opacity:.85}
.side-cta-tel-note{font-size:10.5px;color:rgba(255,255,255,.55);display:block;margin-top:4px;letter-spacing:.04em}
.side-cta-buttons{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:1fr 1fr;gap:8px}
.side-cta-buttons .btn-primary,.side-cta-buttons .btn-dark{margin-top:0!important;width:100%!important;padding:11px 8px!important;font-size:12.5px!important;letter-spacing:.04em!important}
.side-cta .side-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;font-size:13px;font-weight:700;letter-spacing:.06em;padding:11px 14px;border-radius:6px;transition:.2s;text-decoration:none}
.side-cta .side-btn-primary{background:#fff;color:var(--navy);border:1px solid #fff}
.side-cta .side-btn-primary:hover{background:#eef2f7}
.side-cta .side-btn-outline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35)}
.side-cta .side-btn-outline:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6)}
/* Backward compat: any .btn-primary/.btn-dark inside .side-cta inherit side-btn look */
.side-cta .btn-primary,.side-cta .btn-dark{display:flex;align-items:center;justify-content:center;width:100%;font-size:13px;font-weight:700;letter-spacing:.06em;padding:11px 14px;border-radius:6px;min-height:0;background:none;color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:none}
.side-cta .btn-primary{background:#fff;color:var(--navy);border-color:#fff}
.side-cta .btn-primary:hover{background:#eef2f7;color:var(--navy);transform:none;box-shadow:none}
.side-cta .btn-dark:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6);transform:none}

/* Sidebar Nav */
.side-nav{background:var(--white);border:1px solid var(--border-dark);border-radius:10px;overflow:hidden;box-shadow:0 4px 14px -8px rgba(6,32,63,.15)}
.side-nav h4{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;color:#fff;background:var(--navy);padding:13px 18px;letter-spacing:.18em;text-transform:uppercase;margin:0}
.side-nav h4::before{content:"";width:14px;height:1px;background:rgba(255,255,255,.5)}
.side-nav h4+ul+h4{margin-top:0;border-top:1px solid var(--border-dark)}
.side-nav ul{list-style:none;margin:0;padding:0}
.side-nav li{position:relative}
.side-nav a{position:relative;display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:600;color:var(--text);padding:11px 16px;border-bottom:1px solid var(--border-dark);transition:.2s;line-height:1.4;text-decoration:none;letter-spacing:.02em}
.side-nav a::after{content:"›";font-family:var(--en);font-size:18px;font-weight:300;color:var(--text-sub);opacity:.5;transition:.2s;line-height:1;flex-shrink:0;margin-left:8px}
.side-nav li:last-child a{border-bottom:none}
.side-nav a:hover{background:#f5f8fc;color:var(--navy);padding-left:22px}
.side-nav a:hover::after{opacity:1;color:var(--navy);transform:translateX(2px)}
.side-nav li.active a{color:var(--navy);font-weight:800;background:linear-gradient(90deg,rgba(6,32,63,.08) 0%,rgba(6,32,63,0) 100%);padding-left:22px;border-left:3px solid var(--navy);cursor:default}
.side-nav li.active a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--navy)}
.side-nav li.active a::after{content:"●";font-size:8px;color:var(--navy);opacity:1}

/* Sidebar panel — for category pages (products.html / duct-cooler.html) */
.sidebar-panel{padding:72px 0;background:var(--ice);border-top:1px solid var(--border-dark);border-bottom:1px solid var(--border-dark)}
.sidebar-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1080px;margin:0 auto}
.sidebar-panel .side-nav{align-self:start}
@media(max-width:768px){
  .sidebar-panel{padding:48px 0}
  .sidebar-panel-grid{grid-template-columns:1fr;max-width:480px}
}

/* ---- Product Hero v2 (Image = Star) ---- */
.product-hero-v2{margin-bottom:92px}
.product-hero-img{width:100%;border-radius:var(--radius);overflow:hidden;margin-bottom:44px}
.product-hero-img img{width:100%;height:auto;display:block}

/* Title Block */
.product-hero-title{margin-bottom:40px}
.product-hero-label{display:inline-block;font-family:var(--en);font-size:12px;font-weight:700;color:var(--text-sub);letter-spacing:.22em;margin-bottom:14px;padding:5px 14px;background:#eef2f7;border-left:3px solid var(--navy);text-transform:uppercase}
.product-name-main{font-size:40px;font-weight:900;color:var(--navy);letter-spacing:.04em;margin:0 0 20px;line-height:1.35}
.product-catch{font-size:22px;color:var(--text);line-height:1.85}

/* Spec Badges — 4col horizontal */
.product-spec-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:40px}
/* Voltage variant of hero spec badge — color-coded by power type */
.product-spec-badge.is-200v{background:linear-gradient(180deg,#fff 0%,#fef2f2 100%);border-color:#c1272d}
.product-spec-badge.is-200v .product-spec-badge-val{color:#c1272d}
.product-spec-badge.is-100v{background:linear-gradient(180deg,#fff 0%,#eef4fb 100%);border-color:#1d4ed8}
.product-spec-badge.is-100v .product-spec-badge-val{color:#1d4ed8}

.product-spec-badge{background:var(--white);border:1.5px solid var(--border-dark);border-radius:10px;padding:26px 14px;text-align:center;transition:all .3s ease}
.product-spec-badge:hover{border-color:var(--navy);box-shadow:0 10px 30px -10px rgba(6,32,63,.18);transform:translateY(-4px)}
.product-spec-badge-val{display:block;font-family:'Jost',sans-serif;font-size:36px;font-weight:800;color:var(--navy);line-height:1.1}
.product-spec-badge-unit{font-family:'Jost',sans-serif;font-size:14px;color:var(--navy);font-weight:600}
.product-spec-badge-label{display:block;font-size:13px;color:var(--text-sub);margin-top:10px;letter-spacing:.04em;font-weight:500}

/* Product Tags */
.product-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.product-tags .pcard-tag{font-size:12px;padding:6px 16px}

/* Product CTA buttons */
.product-ctas{display:flex;gap:18px;flex-wrap:wrap}
.product-ctas .btn-primary,.product-ctas .btn-dark{min-width:240px;font-size:16px;padding:18px 32px;text-align:center;justify-content:center;font-weight:700}

/* ---- Sections ---- */
.spec-section{margin-bottom:92px}
.spec-section h2{font-size:34px;font-weight:800;color:var(--navy);letter-spacing:.04em;padding-left:1rem;border-left:5px solid var(--navy);margin-bottom:32px;line-height:1.4;display:flex;align-items:center}
.spec-section-lead{font-size:17px;color:var(--text-sub);margin-bottom:32px;line-height:1.9}

/* Product Intro Text */
.product-intro-text p{font-size:18px;line-height:1.9;color:var(--text);margin-bottom:18px}
.spec-note{font-size:13px;color:#999;font-style:italic}

/* Video Embed */
.video-embed{position:relative;width:100%;border-radius:10px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.15)}
.video-embed iframe{width:100%;aspect-ratio:16/9;height:auto;display:block}
.video-thumb{position:relative;width:100%;border-radius:10px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.15);cursor:pointer;aspect-ratio:16/9}
.video-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.video-thumb:hover img{transform:scale(1.03)}
.video-thumb.playing{cursor:default}
.video-thumb.playing .video-play-btn,.video-thumb.playing .video-duration,.video-thumb.playing img{display:none}
.video-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:68px;height:48px;transition:transform .3s ease,opacity .3s ease;opacity:.9}
.video-thumb:hover .video-play-btn{transform:translate(-50%,-50%) scale(1.1);opacity:1}
.video-play-btn svg{width:100%;height:100%;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}
.video-duration{position:absolute;bottom:12px;right:12px;background:rgba(0,0,0,.8);color:#fff;font-size:12px;font-weight:600;padding:3px 8px;border-radius:4px;font-family:var(--en)}
.video-caption{font-size:17px;color:var(--text-sub);margin-bottom:20px;line-height:1.6}

/* ---- Feature Cards — fixed height, 3col ---- */
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-bottom:20px}
.feature-card{background:var(--ice);border:1px solid var(--border-dark);border-radius:10px;padding:32px 24px;text-align:center;display:flex;flex-direction:column;transition:all .3s ease}
.feature-card:hover{border-color:var(--navy);transform:translateY(-4px);box-shadow:0 10px 30px -10px rgba(6,32,63,.15)}
.feature-card img{border-radius:8px;margin-bottom:16px;height:160px;object-fit:contain;width:100%}
.feature-card h4{font-size:18px;font-weight:800;color:var(--navy);margin-bottom:10px;letter-spacing:.03em;line-height:1.4;min-height:50px;display:flex;align-items:center;justify-content:center}
.feature-card h3{font-size:18px;font-weight:800;color:var(--navy);margin-bottom:10px;letter-spacing:.03em;min-height:50px;display:flex;align-items:center;justify-content:center}
.feature-card p{font-size:15px;color:var(--text-sub);line-height:1.85;flex:1}
.feature-badge{display:inline-block;background:var(--navy);color:#fff;font-size:12px;font-weight:700;padding:5px 16px;border-radius:4px;margin-top:12px;align-self:center;letter-spacing:.06em}

/* Equipment Grid — checklist style */
.equip-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px}
.equip-item{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--ice);border:1px solid var(--border-dark);border-radius:8px;font-size:16px;font-weight:500;color:var(--text);transition:all .2s ease}
.equip-item:hover{background:var(--white);border-color:var(--navy)}

/* Product Sub Images */
/* Body & scale comparison grid (本体画像 + 人物との比較) */
.body-scale-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:32px 0 8px}
.body-scale-item{background:#fff;border:1px solid var(--border-dark);border-radius:10px;padding:20px;text-align:center;display:flex;flex-direction:column;justify-content:center}
.body-scale-item img{width:100%;height:auto;max-height:420px;object-fit:contain;display:block;margin:0 auto}
.body-scale-caption{font-size:12.5px;color:var(--text-sub);margin:14px 0 0;letter-spacing:.04em;font-weight:600}
@media(max-width:768px){
  .body-scale-grid{grid-template-columns:1fr;gap:14px}
  .body-scale-item{padding:14px}
}

.product-hero-sub-img{margin:32px auto;border-radius:var(--radius);overflow:hidden;max-width:720px;background:#fff;text-align:center}
.product-hero-sub-img img{width:auto;max-width:100%;max-height:480px;height:auto;display:block;margin:0 auto;object-fit:contain}

/* Detail Feature Grid — 2col cards with images */
.detail-feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-bottom:28px}
.detail-feature-card{background:var(--ice);border:1px solid var(--border-dark);border-radius:10px;padding:32px 28px}
.detail-feature-card.has-img{padding:0;overflow:hidden}
.detail-feature-img{width:100%;overflow:hidden}
.detail-feature-img img{width:100%;height:auto;display:block;object-fit:cover}
.detail-feature-card.has-img .detail-feature-text{padding:28px 28px}
.detail-feature-card h4{font-size:18px;font-weight:800;color:var(--navy);margin-bottom:12px}
.detail-feature-card p{font-size:15px;color:var(--text);line-height:1.85}

/* ---- Spec Table — striped, spacious ---- */
/* Voltage badge — strong emphasis on power spec */
.voltage-badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--en);font-size:18px;font-weight:900;letter-spacing:.04em;padding:8px 18px;border-radius:6px;border:2px solid;text-transform:uppercase;line-height:1;vertical-align:middle}
.voltage-badge::before{content:"";width:14px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M13 2L4.09 12.97a.5.5 0 00.41.78H10.5l-1.5 8.25a.5.5 0 00.91.36L19.91 11.4a.5.5 0 00-.41-.78H13.5L15 2.5a.5.5 0 00-.91-.36L13 2z'/></svg>") center/contain no-repeat;flex-shrink:0}
.voltage-200v{background:#fef2f2;color:#c1272d;border-color:#c1272d}
.voltage-100v{background:#eef4fb;color:#1d4ed8;border-color:#1d4ed8}
.voltage-note{display:inline-block;font-size:12px;color:var(--text-sub);margin-left:12px;font-weight:500;letter-spacing:.02em}
@media(max-width:768px){
  .voltage-badge{font-size:15px;padding:6px 12px}
  .voltage-note{display:block;margin-left:0;margin-top:6px;font-size:11.5px}
}

.spec-table{width:100%;border-collapse:collapse;border:1px solid var(--border-dark);border-radius:8px;overflow:hidden}
.spec-table tr:nth-child(even) td{background:var(--ice)}
.spec-table th,.spec-table td{padding:24px 28px;text-align:left;border-bottom:1px solid var(--border-dark);vertical-align:middle}
.spec-table th{width:240px;background:var(--navy);color:var(--white);font-weight:600;letter-spacing:.04em;font-size:15px}
.spec-table td{color:var(--text);font-weight:600;font-size:16px;letter-spacing:.02em}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Support Box */
/* Bottom CTA: dual premium cards (manufacturer-grade) */
.dual-cta{display:grid;grid-template-columns:1.15fr 1fr;gap:0;margin:24px 0 8px;border-radius:14px;overflow:hidden;box-shadow:0 16px 48px -16px rgba(6,32,63,.25)}
.dual-cta-card{position:relative;display:block;padding:44px 40px 40px;text-decoration:none;overflow:hidden;transition:.35s cubic-bezier(.4,0,.2,1)}
.dual-cta-card::before{content:"";position:absolute;inset:0;background:inherit;z-index:0;transition:.35s}
.dual-cta-inner{position:relative;z-index:2;display:flex;flex-direction:column;gap:14px;height:100%}
.dual-cta-tag{display:inline-block;font-family:var(--en);font-size:11px;font-weight:800;letter-spacing:.32em;padding:5px 12px;border:1px solid currentColor;width:fit-content;border-radius:99px;opacity:.75}
.dual-cta-h{font-size:clamp(20px,2.2vw,26px);font-weight:900;line-height:1.45;letter-spacing:.04em;margin:6px 0 4px}
.dual-cta-p{font-size:14px;line-height:1.85;margin:0;flex:1;opacity:.85}
.dual-cta-action{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;padding:16px 22px;border-radius:8px;font-size:14.5px;font-weight:800;letter-spacing:.06em;transition:.25s}
.dual-cta-action svg{width:18px;height:18px;flex-shrink:0;transition:.25s}
.dual-cta-card:hover .dual-cta-action svg{transform:translateX(5px)}
/* Primary card (navy gradient) */
.dual-cta-primary{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%);color:#fff}
.dual-cta-primary .dual-cta-pattern{position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,transparent,transparent 28px,rgba(255,255,255,.025) 28px,rgba(255,255,255,.025) 29px),radial-gradient(circle at 90% 20%,rgba(255,255,255,.06) 0%,transparent 40%);pointer-events:none;z-index:1}
.dual-cta-primary .dual-cta-action{background:#fff;color:var(--navy)}
.dual-cta-primary:hover .dual-cta-action{background:#eef2f7}
.dual-cta-primary:hover{background:linear-gradient(135deg,var(--navy-mid) 0%,var(--navy-light) 100%)}
/* Secondary card (white with subtle accent) */
.dual-cta-secondary{background:#fff;color:var(--navy);border-left:1px solid var(--border-dark)}
.dual-cta-secondary .dual-cta-action{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}
.dual-cta-secondary:hover .dual-cta-action{background:var(--navy);color:#fff}
.dual-cta-secondary:hover{background:#fafbfd}
@media(max-width:768px){
  .dual-cta{grid-template-columns:1fr;border-radius:10px}
  .dual-cta-card{padding:32px 24px 28px}
  .dual-cta-secondary{border-left:none;border-top:1px solid var(--border-dark)}
}

.support-box{background:var(--ice);border:1px solid var(--border-dark);border-radius:12px;padding:48px;display:flex;flex-direction:column;gap:28px}
.support-box p{font-size:17px;line-height:1.85;color:var(--text);margin:0}
.support-box .btn-primary,.support-box .btn-dark{min-width:280px;font-size:17px;padding:20px 40px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:60px}
.support-box .btn-primary svg,.support-box .btn-dark svg{width:20px;height:20px;fill:currentColor;flex-shrink:0}

/* ---- Contact Form Page ---- */
.form-section{margin-bottom:64px}
.form-section h2{font-size:20px;font-weight:900;color:var(--navy);letter-spacing:.04em;padding-bottom:14px;border-bottom:2.5px solid var(--navy);margin-bottom:28px}
.form-group{margin-bottom:28px}
.form-label{display:block;font-size:14px;font-weight:700;color:var(--navy);letter-spacing:.04em;margin-bottom:8px}
.form-label .required{font-size:11px;color:#e04040;background:rgba(224,64,64,.08);padding:2px 8px;border-radius:3px;margin-left:8px;font-weight:600}
.form-input,.form-select,.form-textarea{width:100%;font-size:15px;font-family:var(--sans);color:var(--text);padding:14px 16px;border:1.5px solid var(--border-dark);border-radius:var(--radius-sm);transition:.3s;background:var(--white)}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,200,255,.1)}
.form-textarea{min-height:160px;resize:vertical}
.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235a6a7a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.form-submit{text-align:center;margin-top:40px}
.form-submit .btn-primary{min-width:280px}
.form-note{font-size:13px;color:var(--text-sub);line-height:1.8;margin-bottom:24px}

/* Demo Flow Steps */
.demo-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:56px}
.demo-step{text-align:center;position:relative}
.demo-step-num{width:48px;height:48px;border-radius:50%;background:var(--accent);color:var(--white);font-family:var(--en);font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.demo-step h3{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:8px;letter-spacing:.04em}
.demo-step p{font-size:13px;color:var(--text-sub);line-height:1.8}
.demo-step:not(:last-child)::after{content:'';position:absolute;top:24px;right:-12px;width:24px;height:2px;background:var(--border-dark)}

/* Company Info Table */
.co-table{width:100%;border-collapse:collapse;margin-bottom:48px}
.co-table th,.co-table td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--border-dark);font-size:14px;vertical-align:top}
.co-table th{width:30%;color:var(--navy);font-weight:600;background:var(--ice);letter-spacing:.04em}
.co-table td{color:var(--text);line-height:1.8}

/* Timeline */
.timeline{position:relative;padding-left:32px;margin-bottom:48px}
.timeline::before{content:'';position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:var(--border-dark)}
.timeline-item{position:relative;margin-bottom:24px}
.timeline-item::before{content:'';position:absolute;left:-28px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--white);box-shadow:0 0 0 2px var(--accent)}
.timeline-year{font-family:var(--en);font-size:14px;font-weight:700;color:var(--primary);margin-bottom:4px}
.timeline-text{font-size:14px;color:var(--text);line-height:1.7}

/* Q&A Accordion */
.qa-list{margin-bottom:48px}
.qa-item{border:1px solid var(--border-dark);border-left:4px solid var(--navy);border-radius:var(--radius-sm);margin-bottom:14px;overflow:hidden;background:var(--white);box-shadow:0 1px 3px rgba(6,32,63,.04)}
.qa-item.open{box-shadow:0 6px 20px rgba(6,32,63,.08);border-left-color:var(--navy-mid)}
.qa-q{display:flex;align-items:center;gap:18px;padding:20px 26px;cursor:pointer;background:var(--white);transition:.25s;font-size:16px;font-weight:700;color:var(--navy);letter-spacing:.02em;line-height:1.55}
.qa-q:hover{background:#f5f8fc}
.qa-item.open .qa-q{background:#f5f8fc}
.qa-q::before{content:'Q';font-family:var(--en);font-size:16px;font-weight:800;color:var(--white);background:var(--navy);width:34px;height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:0}
.qa-q::after{content:'+';margin-left:auto;font-size:22px;font-weight:300;color:var(--navy);transition:.3s;flex-shrink:0;line-height:1}
.qa-item.open .qa-q::after{transform:rotate(45deg)}
.qa-a{display:none;padding:18px 26px 22px 78px;font-size:15px;color:var(--text);line-height:1.95;background:#fafbfd;border-top:1px solid var(--border-dark);position:relative}
.qa-a::before{content:'A';position:absolute;left:26px;top:18px;font-family:var(--en);font-size:14px;font-weight:800;color:#fff;background:var(--accent);width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center}
.qa-item.open .qa-a{display:block}

/* Cases List Page */
.cases-list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:48px}
.cases-list-grid .ccard{border-radius:var(--radius);overflow:hidden;background:var(--white);border:1px solid var(--border-dark);transition:.4s;opacity:1;transform:none}
.cases-list-grid .ccard:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}

/* Rental / Choice - Icon List */
.icon-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:48px}
.icon-list-item{display:flex;gap:16px;padding:24px;background:var(--ice);border-radius:var(--radius-sm)}
.icon-list-item-icon{width:48px;height:48px;flex-shrink:0;background:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center}
.icon-list-item h3{font-size:15px;font-weight:700;color:var(--navy);margin-bottom:4px}
.icon-list-item p{font-size:13px;color:var(--text-sub);line-height:1.7}

/* ---- Sub Page Responsive ---- */
@media(max-width:1024px){
  .sub-grid{grid-template-columns:1fr;gap:48px}
  .sub-sidebar{position:static}
  .product-spec-badges{grid-template-columns:repeat(2,1fr)}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .demo-steps{grid-template-columns:1fr;gap:16px}
  .demo-step:not(:last-child)::after{display:none}
  .cases-list-grid{grid-template-columns:repeat(2,1fr)}
  .spec-table th{width:180px}
  .detail-feature-card.has-icon{flex-direction:column}
}
@media(max-width:768px){
  .page-header{padding:110px 0 40px}
  .page-header-title{font-size:26px}
  .page-header-line{display:none}
  .page-header-sub{flex-direction:column;gap:.5rem}
  .page-header-sub .spec-sep{display:none}
  .sub-content{padding:48px 0 64px}
  .product-spec-badges{grid-template-columns:repeat(2,1fr)}
  .product-name-main{font-size:24px}
  .feature-grid{grid-template-columns:1fr}
  .feature-card{min-height:auto}
  .equip-grid{grid-template-columns:1fr}
  .detail-feature-grid{grid-template-columns:1fr}
  .spec-table th,.spec-table td{padding:12px 16px;font-size:13px}
  .spec-table th{width:120px;font-size:12px}
  .spec-table td{font-size:14px}
  .spec-section{margin-bottom:48px}
  .icon-list{grid-template-columns:1fr}
  .cases-list-grid{grid-template-columns:1fr}
  .side-nav,.side-cta{display:none}
}

/* ===================== Video Sub Grid ===================== */
.video-sub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:16px}
.video-sub-card{background:var(--ice);border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-dark);transition:.3s}
.video-sub-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}
.video-sub-card .video-thumb{border-radius:0;margin-bottom:0}
.video-sub-card-body{padding:12px 16px}
.video-sub-label{display:inline-block;font-size:11px;font-weight:600;color:var(--accent);background:rgba(34,200,255,.08);border:1px solid rgba(34,200,255,.2);padding:2px 10px;border-radius:4px;letter-spacing:.04em;margin-bottom:6px}
.video-sub-title{font-size:14px;font-weight:600;color:var(--text);line-height:1.5;margin:0}
.video-sub-desc{font-size:12px;color:var(--text-sub);line-height:1.6;margin:6px 0 0}
.video-sub-note{font-size:12px;color:var(--text-sub);margin-top:4px}

/* Video Collapsible */
details.video-more{margin-top:20px;border:1px solid var(--border-dark);border-radius:var(--radius-sm);overflow:hidden}
details.video-more summary{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;font-size:14px;font-weight:600;color:var(--primary);background:var(--ice);cursor:pointer;letter-spacing:.04em;transition:.3s;list-style:none}
details.video-more summary::-webkit-details-marker{display:none}
details.video-more summary::after{content:'+';font-size:18px;font-weight:400;transition:.3s}
details.video-more[open] summary::after{transform:rotate(45deg)}
details.video-more summary:hover{background:rgba(34,200,255,.06);color:var(--accent)}
details.video-more .video-sub-grid{padding:16px;margin-top:0;background:var(--white)}

@media(max-width:768px){
  .video-sub-grid{grid-template-columns:1fr}
}

/* ===================== Uiverse.io Inspired Effects ===================== */

/* Animated Border Glow — Strength Cards */
@property --angle{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes rotateBorder{to{--angle:360deg}}

.str-card{position:relative;z-index:0;overflow:hidden;border:none!important}
.str-card::before{content:'';position:absolute;inset:-2px;border-radius:var(--radius);background:conic-gradient(from var(--angle),transparent 60%,var(--accent) 80%,transparent 100%);z-index:-2;opacity:0;transition:opacity .5s;animation:rotateBorder 3s linear infinite}
.str-card::after{content:'';position:absolute;inset:2px;border-radius:calc(var(--radius) - 2px);background:var(--card-bg);z-index:-1}
.str-card:hover::before{opacity:1}
.str-card:hover{background:rgba(255,255,255,.08)!important;box-shadow:0 0 30px rgba(34,200,255,.15),0 12px 40px rgba(0,0,0,.25)!important}

/* Neon Glow Number — Strength Cards */
.str-card:hover .str-num{color:var(--accent);text-shadow:0 0 20px rgba(34,200,255,.6),0 0 40px rgba(34,200,255,.3);transition:.4s}

/* Product Cards — Neon Border Beam */
@keyframes borderBeam{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
.pcard{position:relative;z-index:0;border:none!important}
.pcard::before{content:'';position:absolute;inset:-1px;border-radius:var(--radius);background:linear-gradient(135deg,rgba(34,200,255,0),rgba(34,200,255,.4),rgba(127,239,255,.6),rgba(34,200,255,.4),rgba(34,200,255,0));background-size:300% 300%;z-index:-2;opacity:0;transition:opacity .5s;animation:borderBeam 4s ease infinite}
.pcard::after{content:'';position:absolute;inset:1px;border-radius:calc(var(--radius) - 1px);background:rgba(9,25,50,.95);z-index:-1;transition:.3s}
.pcard:hover::before{opacity:1}
.pcard:hover::after{background:rgba(15,35,65,.92)}
.pcard:hover{box-shadow:0 0 40px rgba(34,200,255,.12),0 20px 50px rgba(0,0,0,.3)!important}

/* Product Image — clean */
.pcard-img{position:relative;overflow:hidden}

/* Button — clean */
.btn-primary{position:relative;overflow:hidden}

/* Pulse Glow on Hero CTA */
@keyframes ctaPulse{
  0%,100%{box-shadow:0 4px 15px -5px rgba(56,189,248,.4)}
  50%{box-shadow:0 4px 25px -2px rgba(56,189,248,.6),0 0 40px rgba(34,200,255,.2)}
}
.hero-ctas .btn-primary{animation:ctaPulse 3s ease-in-out infinite}
.hero-ctas .btn-primary:hover{animation:none}

/* Glassmorphism — Service Cards */
.svc-card{backdrop-filter:blur(10px);transition:all .4s cubic-bezier(.4,0,.2,1)!important}
.svc-card:hover{border-color:var(--accent)!important;box-shadow:0 8px 32px rgba(34,200,255,.1),0 0 0 1px rgba(34,200,255,.2)!important;transform:translateY(-8px)!important}
.svc-card:hover .svc-icon{transform:scale(1.15) rotate(5deg);transition:.4s}
.svc-card .svc-icon{transition:.4s}

/* Metric Cards — Glow Counter */
@keyframes metricGlow{
  0%,100%{text-shadow:0 0 10px rgba(34,200,255,.3)}
  50%{text-shadow:0 0 25px rgba(34,200,255,.6),0 0 50px rgba(34,200,255,.2)}
}
.about-metric.revealed .about-metric-num{animation:metricGlow 3s ease-in-out infinite}
.about-metric{transition:all .4s cubic-bezier(.4,0,.2,1)!important}
.about-metric:hover{transform:translateY(-6px) scale(1.02)!important;border-color:rgba(34,200,255,.3)!important;box-shadow:0 12px 40px rgba(0,0,0,.3),0 0 20px rgba(34,200,255,.1)!important}

/* Hero Tags — Shimmer */
@keyframes tagShimmer{
  0%{background-position:-200% center}
  100%{background-position:200% center}
}
.hero-tag{background:linear-gradient(90deg,var(--tag-bg) 30%,rgba(34,200,255,.25) 50%,var(--tag-bg) 70%)!important;background-size:200% 100%;animation:tagShimmer 4s ease-in-out infinite;border:1px solid rgba(34,200,255,.3)!important}

/* Case Cards — Tilt Glow */
.ccard{transition:all .4s cubic-bezier(.4,0,.2,1)!important}
.ccard:hover{box-shadow:0 20px 50px rgba(0,0,0,.12),0 0 0 1px rgba(34,200,255,.15)!important}
.ccard:hover .ctag{box-shadow:0 0 15px rgba(34,200,255,.4)}

/* Company Cards — Overlay Glow */
.co-card:hover .co-overlay{background:linear-gradient(180deg,transparent 20%,rgba(6,32,63,.9) 100%)!important}
.co-card:hover{box-shadow:0 0 30px rgba(34,200,255,.15)!important}

/* News Items — Left Accent Slide */
.nitem{position:relative;overflow:hidden}
.nitem::before{content:'';position:absolute;left:0;top:0;width:3px;height:100%;background:var(--accent);transform:scaleY(0);transition:transform .3s;transform-origin:bottom}
.nitem:hover::before{transform:scaleY(1);transform-origin:top}
.nitem:hover{padding-left:16px!important}

/* Movie Cards — Play Button Pulse */
@keyframes playPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(24,182,255,.4)}
  50%{box-shadow:0 0 0 12px rgba(24,182,255,0)}
}
.movie-card:hover .play-icon svg circle{animation:playPulse 1.5s ease infinite}

/* Final CTA Cards — Hover Glow Border */
.final-cta-card{position:relative;overflow:hidden}
.final-cta-card::before{content:'';position:absolute;inset:-1px;border-radius:var(--radius);background:linear-gradient(135deg,transparent,rgba(34,200,255,.3),transparent);opacity:0;transition:opacity .4s;z-index:-1}
.final-cta-card:hover::before{opacity:1}

/* Floating Animation for Hero Gauge */
@keyframes gaugeFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
.hero-gauge{animation:gaugeFloat 4s ease-in-out infinite}

/* Hero Info Cards — Stagger Entrance */
@keyframes slideInRight{
  from{opacity:0;transform:translateX(20px)}
  to{opacity:1;transform:translateX(0)}
}
.hero-info-card{opacity:0;animation:slideInRight .6s ease forwards}
.hero-info-card:nth-child(1){animation-delay:.8s}
.hero-info-card:nth-child(2){animation-delay:1s}
.hero-info-card:nth-child(3){animation-delay:1.2s}

/* Section Label — Animated Underline */
.sec-label{position:relative;display:inline-block}
.sec-label::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--accent);transition:width .8s cubic-bezier(.4,0,.2,1)}
.sec-label.center::after{left:50%;transform:translateX(-50%)}

/* Trigger underline on scroll reveal */
.str-card.revealed ~ .section-mini-cta .sec-label::after,
.about-metric.revealed ~ .sec-label::after{width:100%}

/* Header CTA — Neon Pulse */
@keyframes headerCtaPulse{
  0%,100%{box-shadow:0 4px 15px -5px rgba(56,189,248,.4)}
  50%{box-shadow:0 4px 20px -2px rgba(56,189,248,.5),0 0 25px rgba(34,200,255,.15)}
}
.header-cta{animation:headerCtaPulse 3s ease-in-out infinite}
.header-cta:hover{animation:none}

/* Wind Bar Enhanced Glow */
.wind-bar-fill.animated{background:linear-gradient(90deg,var(--primary),var(--accent))}

/* Products Guide — Breathing Border */
@keyframes guideBreathe{
  0%,100%{border-color:rgba(24,182,255,.2);box-shadow:0 0 0 rgba(24,182,255,0)}
  50%{border-color:rgba(24,182,255,.5);box-shadow:0 0 20px rgba(24,182,255,.08)}
}
.products-guide{animation:guideBreathe 4s ease-in-out infinite}

/* Smooth Scroll Reveal Enhancement */
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}

/* Button outline — clean */
.btn-outline-white{position:relative;overflow:hidden}

/* Intro Video — Animated Grid Background (Uiverse giant-mole style) */
.intro-video-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.iv-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(4,1fr);width:100%;height:100%;gap:2px}
.iv-cell{background:rgba(34,200,255,.03);border-radius:4px;animation:ivPulse 4s ease-in-out infinite;animation-delay:var(--delay)}
@keyframes ivPulse{0%,100%{background:rgba(34,200,255,.02);box-shadow:none}50%{background:rgba(34,200,255,.08);box-shadow:inset 0 0 20px rgba(34,200,255,.05)}}

/* ===== Subpage Patterns ===== */

/* Page Header — Outline Marquee Text */
.page-header .outline-text{top:50%;animation:marqueeLeft 40s linear infinite}
.page-header .outline-text span{-webkit-text-stroke:1.5px rgba(56,189,248,.12);font-size:clamp(100px,14vw,200px)}

/* Page Header — Noise Texture (layered on top of existing grid) */
.page-header .noise-overlay{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0}

/* Sub Section Divider (between content blocks) */
.sub-divider{height:3px;background:linear-gradient(90deg,transparent 5%,var(--accent) 30%,var(--primary) 70%,transparent 95%);opacity:.2;margin:64px 0}

/* Sub Content — Card grids */
.sub-content .catalog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;margin-bottom:40px}
.sub-content .cases-list-grid{gap:2px}
.sub-content .icon-list{gap:2px}
.sub-content .demo-steps{gap:2px}

/* Sub Content — Cards */
.design-card{position:relative;background:var(--white);border:1px solid var(--border-dark);padding:28px 24px;transition:.4s;overflow:hidden}
.design-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--primary));opacity:0;transition:opacity .3s}
.design-card:hover::before{opacity:1}
.design-card::after{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);transition:none;pointer-events:none}
.design-card:hover::after{left:150%;transition:left .7s ease-in-out}
.design-card:hover{border-color:rgba(56,189,248,.3);transform:translateY(-3px);box-shadow:0 8px 24px rgba(8,38,74,.1)}

/* Catalog cards */
.catalog-card{position:relative;background:var(--white);border:1px solid var(--border-dark);padding:24px;text-align:center;transition:.4s;overflow:hidden}
.catalog-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--primary));opacity:0;transition:opacity .3s}
.catalog-card:hover::before{opacity:1}
.catalog-card:hover{border-color:rgba(56,189,248,.3);transform:translateY(-3px);box-shadow:0 8px 24px rgba(8,38,74,.1)}
.catalog-card-icon{background-color:var(--ice);padding:32px 16px;margin-bottom:16px}
.catalog-card h3{font-size:15px;font-weight:700;color:var(--navy);margin-bottom:4px}
.catalog-card .meta{font-size:12px;color:var(--text-sub);margin-bottom:12px}

/* Choice / Rental / Repair — info cards with blue line */
.info-card{position:relative;background:var(--ice);border:1px solid var(--border-dark);padding:28px 24px;transition:.4s;overflow:hidden}
.info-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--primary));opacity:0;transition:opacity .3s}
.info-card:hover::before{opacity:1}
.info-card:hover{border-color:rgba(56,189,248,.3)}
.info-card h3{font-size:17px;font-weight:700;color:var(--navy);margin-bottom:8px}
.info-card p{font-size:14px;line-height:1.8;color:var(--text)}

/* Numbers */
.num-sharp{font-family:var(--en);font-weight:800;letter-spacing:-.02em}

/* QA item — accent bar removed (left navy border handles emphasis) */

/* Demo step cards */
.demo-step-card{position:relative;background:var(--white);border:1px solid var(--border-dark);padding:32px 24px;text-align:center;transition:.4s;overflow:hidden}
.demo-step-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--primary));opacity:0;transition:opacity .3s}
.demo-step-card:hover::before{opacity:1}
.demo-step-card:hover{border-color:rgba(56,189,248,.3);transform:translateY(-3px)}

/* SP — Disable heavy animations */
@media(max-width:768px){
  .str-card,.pcard{border:1px solid var(--card-border)!important}
  .hero-gauge{animation:none!important}
  .hero-ctas .btn-primary{animation:none!important}
  .header-cta{animation:none!important}
  .about-metric.revealed .about-metric-num{animation:none!important}
  .hero-tag{animation:none!important}
  .products-guide{animation:none!important}
  .page-header .outline-text{display:none}
  .design-card:hover,.catalog-card:hover,.info-card:hover,.demo-step-card:hover{transform:none}
  .design-card::before,.design-card::after,.catalog-card::before,.info-card::before,.demo-step-card::before{display:none}
}

/* ==========================================================================
   Product Detail Page (neo-breeze.html etc.) — 骨格コピー方式
   OK ページ（qa.html / choice.html / products.html）と同じシェルクラスを使う
   product-* クラスは商品詳細ページ専用
   ========================================================================== */

/* Product Hero - 画像左 + テキスト右 */
.product-hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin:0 0 56px;padding:32px 0}
.product-hero-img{display:flex;justify-content:center;align-items:center}
.product-hero-img img{max-width:100%;width:auto;max-height:480px;height:auto;object-fit:contain;background:#fff;padding:24px;border-radius:12px;box-shadow:0 16px 40px -16px rgba(6,32,63,.15)}
.product-hero-label{font-family:var(--en);font-size:13px;font-weight:800;letter-spacing:.18em;color:var(--accent);margin:0 0 12px;text-transform:uppercase}
.product-hero-h{font-size:30px;font-weight:800;color:var(--navy);margin:0 0 14px;line-height:1.4;letter-spacing:.01em}
.product-hero-catch{font-size:18px;font-weight:700;color:var(--navy);margin:0 0 14px;line-height:1.6}
.product-hero-lead{font-size:15px;line-height:1.95;color:var(--text);margin:0 0 24px}
.product-hero-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 28px}
.product-hero-badge{background:#fff;border:1.5px solid var(--border-dark);border-radius:8px;padding:14px 8px;text-align:center;display:flex;flex-direction:column;justify-content:center;min-height:88px}
.product-hero-badge-label{display:block;font-size:11px;font-weight:700;color:var(--text-sub);letter-spacing:.04em;margin-bottom:6px}
.product-hero-badge-value{display:block;font-family:var(--en);font-size:26px;font-weight:800;color:var(--navy);line-height:1.1;letter-spacing:.01em}
.product-hero-badge-value small{font-family:var(--jp);font-size:11px;font-weight:600;margin-left:2px;color:var(--text-sub);letter-spacing:0}
.product-hero-badge-value-sm{display:block;font-size:13px;font-weight:800;color:#1d4ed8;line-height:1.35;letter-spacing:.01em}
.product-hero-badge-value-sm small{display:block;font-size:9.5px;font-weight:600;color:var(--text-sub);margin-top:3px;letter-spacing:.04em}
.product-hero-badge-100v{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#93c5fd}
.product-hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.product-hero-ctas .btn-primary,.product-hero-ctas .btn-outline{padding:12px 28px;font-size:14px}
.btn-outline{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--navy);border:1.5px solid var(--navy);padding:12px 24px;font-size:14px;font-weight:800;letter-spacing:.04em;text-decoration:none;border-radius:0;transition:.2s}
.btn-outline:hover{background:var(--navy);color:#fff}

/* Product Section (FEATURE 01 / 02 etc.) */
.product-section{padding:48px 0;border-top:1px solid var(--border-dark)}
.product-section:first-of-type{border-top:none}
.product-section-label{font-family:var(--en);font-size:12px;font-weight:800;letter-spacing:.18em;color:var(--accent);margin:0 0 12px;text-transform:uppercase}
.product-section-h{font-size:24px;font-weight:800;color:var(--navy);margin:0 0 22px;line-height:1.5;letter-spacing:.01em}
.product-section-p{font-size:15.5px;line-height:1.95;color:var(--text);margin:0 0 22px}
.product-section-imgs{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}
.product-section-img{margin:0}
.product-section-img img{width:100%;height:auto;border-radius:8px;display:block}
.product-section-img-full{margin:24px 0;text-align:center}
.product-section-img-full img{max-width:100%;height:auto;border-radius:8px}

/* Product Feature Grid (2カラム カード) */
.product-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:24px 0}
.product-feature-card{background:#fff;border:1px solid var(--border-dark);border-radius:8px;padding:20px;text-align:center;transition:.2s}
.product-feature-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px -8px rgba(6,32,63,.12)}
.product-feature-img{margin:0 0 14px}
.product-feature-img img{width:100%;height:auto;max-height:200px;object-fit:contain;border-radius:6px}
.product-feature-h{font-size:16px;font-weight:700;color:var(--navy);margin:0;line-height:1.5}
.product-feature-h small{display:block;font-size:12px;font-weight:600;color:var(--text-sub);margin-top:2px}

/* Product Controller Grid */
.product-controller-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;margin:24px 0}
.product-controller-img{margin:0}
.product-controller-img img{width:100%;height:auto;max-height:280px;object-fit:contain}
.product-controller-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}
.product-controller-list li{position:relative;padding:14px 18px 14px 42px;background:var(--ice);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;font-size:14.5px;font-weight:600;color:var(--navy);line-height:1.7}
.product-controller-list li::before{content:'';position:absolute;left:14px;top:18px;width:18px;height:18px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306203f' stroke-width='2.5'><path d='M20 6L9 17l-5-5'/></svg>") center/contain no-repeat}
.product-controller-extras{display:flex;align-items:center;gap:24px;margin-top:24px;padding:20px;background:var(--ice);border-radius:8px;flex-wrap:wrap}
.product-controller-img-sm{margin:0;flex-shrink:0}
.product-controller-img-sm img{height:60px;width:auto}
.product-controller-warranty{margin:0;font-size:13px;font-weight:700;color:var(--navy);letter-spacing:.02em}

/* Spec Table */
.product-spec-section{padding:48px 0;border-top:1px solid var(--border-dark)}
.spec-table{width:100%;border-collapse:collapse;margin:24px 0;font-size:14.5px;background:#fff;border:1px solid var(--border-dark)}
.spec-table th,.spec-table td{padding:14px 20px;border-bottom:1px solid var(--border-dark);text-align:left;line-height:1.7}
.spec-table th{background:var(--ice);width:38%;font-weight:800;color:var(--navy);letter-spacing:.02em;font-size:13.5px}
.spec-table td{color:var(--text);font-weight:600}
.spec-table tr:last-child th,.spec-table tr:last-child td{border-bottom:none}

/* Product Notice Section */
.product-notice-section{padding:48px 0;border-top:1px solid var(--border-dark)}
.product-notice-img{margin:0 0 20px;text-align:center}
.product-notice-img img{height:auto;max-height:60px}
.product-notice-list{list-style:none;padding:0;margin:0;background:#fff8e6;border-left:4px solid #f59e0b;border-radius:0 8px 8px 0;padding:20px 24px;display:flex;flex-direction:column;gap:10px}
.product-notice-list li{position:relative;padding-left:22px;font-size:14px;line-height:1.85;color:var(--text)}
.product-notice-list li::before{content:'!';position:absolute;left:0;top:1px;width:16px;height:16px;background:#f59e0b;color:#fff;border-radius:50%;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}

/* SP responsive */
@media(max-width:768px){
  .product-hero{grid-template-columns:1fr;gap:24px;padding:16px 0;margin:0 0 32px}
  .product-hero-img img{max-height:320px;padding:16px}
  .product-hero-h{font-size:22px}
  .product-hero-catch{font-size:16px}
  .product-hero-badges{grid-template-columns:repeat(2,1fr);gap:8px}
  .product-hero-badge{min-height:80px;padding:12px 6px}
  .product-hero-badge-value{font-size:22px}
  .product-section{padding:36px 0}
  .product-section-h{font-size:19px}
  .product-section-imgs{grid-template-columns:1fr}
  .product-controller-grid{grid-template-columns:1fr}
  .spec-table th,.spec-table td{padding:10px 14px;font-size:13px}
  .spec-table th{width:42%}
}
