/* ============================================================ 小田警備保障 | Design Tokens スモークブルー4色 + 紙の下地(V4 鉛筆) #284155 / #597594 / #edd8d2 / #d2dcdc ============================================================ */ :root{ /* 面:紙 */ --navy-900:#F4F7F7; --navy-850:#FFFFFF; --navy-800:#EDF2F2; --navy-750:#E5EBEB; --navy-700:#D2DCDC; --navy-600:#C0CFCF; /* 常に暗い部分(ヘッダー・ヒーロー・フッター) */ --ink-900:#132029; --ink-800:#1B2E3E; --ink-700:#284155; /* アクセント(濃→淡) */ --gold-300:#1B2E3E; --gold-400:#284155; --gold-500:#597594; --gold-600:#8CA3BC; /* 暗い面の上で使う淡い色 */ --sand:#edd8d2; --sand-deep:#D9B9AF; --td:#EDF1F2; --td-sub:#B9C7CF; --text:#22313B; --text-soft:#4C5E69; --muted:#71838C; --line:rgba(19,32,41,.13); --line-gold:rgba(40,65,85,.24); --ff-jp:"Noto Sans JP",-apple-system,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif; --ff-serif:"Noto Serif JP","Hiragino Mincho ProN",serif; --ff-en:"Outfit","Noto Sans JP",sans-serif; --ease:cubic-bezier(.34,1.42,.4,1); --header-h:84px; } *{margin:0;padding:0;box-sizing:border-box} html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)} body{ background:var(--navy-900); color:var(--text); font-family:var(--ff-jp); font-size:17px; line-height:1.95; letter-spacing:.03em; -webkit-font-smoothing:antialiased; overflow-x:hidden; } img{max-width:100%;display:block} a{color:inherit;text-decoration:none} ul{list-style:none} button{font:inherit;color:inherit;background:none;border:none;cursor:pointer} ::selection{background:var(--gold-500);color:var(--navy-900)} /* 背景の微細グリッド(全体) */ body::before{ content:'';position:fixed;inset:0;z-index:0;pointer-events:none; background-image: linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px); background-size:76px 76px; mask-image:radial-gradient(ellipse 90% 70% at 50% 30%,#000 30%,transparent 100%); } .wrap{width:min(1240px,88%);margin-inline:auto;position:relative;z-index:1} .section{padding:clamp(88px,9vw,148px) 0;position:relative} /* ---------- 共通パーツ ---------- */ .sec-head{margin-bottom:clamp(40px,5vw,68px)} .sec-label{ display:inline-flex;align-items:center;gap:14px; font-family:var(--ff-en);font-weight:300;font-size:12.5px; letter-spacing:.32em;color:var(--gold-500);text-transform:uppercase;margin-bottom:18px; } .sec-label::before{content:'';width:38px;height:1px;background:linear-gradient(90deg,var(--gold-600),var(--gold-400))} .sec-title{ font-family:var(--ff-serif);font-weight:600; font-size:clamp(27px,3.4vw,42px);line-height:1.55;letter-spacing:.05em; } .sec-title em{font-style:normal;color:var(--gold-400)} .sec-lead{margin-top:22px;color:var(--text-soft);font-size:16.5px;max-width:62ch} .rule{height:1px;background:linear-gradient(90deg,transparent,var(--line-gold) 30%,var(--line-gold) 70%,transparent)} /* ---------- ボタン ---------- */ .btn{ position:relative;display:inline-flex;align-items:center;justify-content:center;gap:14px; padding:19px 40px;font-size:16px;font-weight:500;letter-spacing:.1em; border:1px solid var(--gold-500);border-radius:16px;overflow:hidden;isolation:isolate; transition:color .45s var(--ease),border-color .45s var(--ease),transform .45s var(--ease),box-shadow .45s var(--ease); } .btn:hover{transform:translateY(-3px) rotate(-.4deg)} .btn .arw{width:22px;height:1px;background:currentColor;position:relative;transition:width .45s var(--ease)} .btn .arw::after{content:'';position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)} .btn:hover .arw{width:34px} /* ゴールド塗り */ .btn-gold{background:linear-gradient(120deg,var(--gold-600),var(--gold-400) 55%,var(--gold-600));color:var(--navy-900);font-weight:700;border-color:transparent} .btn-gold::before{ content:'';position:absolute;inset:0;z-index:-1; background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.75) 48%,transparent 76%); transform:translateX(-120%);transition:transform .85s var(--ease); } .btn-gold:hover{transform:translateY(-3px);box-shadow:0 18px 40px -18px rgba(237,216,210,.75)} .btn-gold:hover::before{transform:translateX(120%)} /* 枠線 → 塗り */ .btn-line{color:var(--gold-300)} .btn-line::before{ content:'';position:absolute;inset:0;z-index:-1;background:var(--gold-500); transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease); } .btn-line:hover{color:var(--navy-900);transform:translateY(-3px)} .btn-line:hover::before{transform:scaleX(1)} /* クリック波紋 */ .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:ripple .7s var(--ease) forwards;pointer-events:none;z-index:2} @keyframes ripple{to{transform:scale(2.6);opacity:0}} /* ============================================================ ヘッダー ============================================================ */ .progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:120; background:linear-gradient(90deg,var(--gold-600),var(--gold-300));box-shadow:0 0 12px rgba(237,216,210,.7)} .header{ position:fixed;top:0;left:0;width:100%;z-index:100;height:var(--header-h); display:flex;align-items:center; transition:background .5s var(--ease),height .5s var(--ease),border-color .5s var(--ease),backdrop-filter .5s; border-bottom:1px solid transparent; } .header.scrolled{height:70px;background:rgba(5,8,15,.86);backdrop-filter:blur(16px);border-bottom-color:var(--line-gold)} .header-inner{width:min(1440px,94%);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:24px} .logo{display:flex;align-items:center;gap:14px;flex-shrink:0} .logo-mark{width:40px;height:44px;flex:none;position:relative} .logo-mark svg{width:100%;height:100%;display:block} .logo-mark-img{width:auto;height:40px} .logo-mark-img img{height:100%;width:auto;display:block;border-radius:3px} .logo-txt strong{display:block;font-family:var(--ff-en);font-size:9.5px;font-weight:300;letter-spacing:.06em;line-height:1.35;white-space:nowrap;color:var(--gold-500)} .logo-txt span{display:block;font-family:var(--ff-serif);font-size:18px;font-weight:600;letter-spacing:.03em;white-space:nowrap} .gnav{display:flex;align-items:center;gap:4px;flex-shrink:0} .gnav>li{position:relative} .gnav>li>a{ display:flex;align-items:center;gap:7px;padding:14px 17px;font-size:14.5px;font-weight:500;letter-spacing:.09em;position:relative;white-space:nowrap; } .gnav>li>a::after{ content:'';position:absolute;left:17px;right:17px;bottom:8px;height:1px; background:var(--gold-400);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease); } .gnav>li:hover>a::after{transform:scaleX(1);transform-origin:left} .gnav>li:hover>a{color:var(--gold-300)} .gnav .caret{width:5px;height:5px;border-right:1px solid var(--gold-500);border-bottom:1px solid var(--gold-500);transform:rotate(45deg) translateY(-2px);transition:transform .4s var(--ease)} .gnav>li:hover .caret{transform:rotate(225deg) translateY(-2px)} /* ドロップダウン */ .drop{ position:absolute;top:100%;left:50%;transform:translate(-50%,14px); min-width:270px;padding:14px;opacity:0;visibility:hidden; background:rgba(8,13,26,.96);backdrop-filter:blur(18px); border:1px solid var(--line-gold); box-shadow:0 30px 70px -30px rgba(0,0,0,.95); transition:opacity .4s var(--ease),transform .4s var(--ease),visibility .4s; } .drop.wide{min-width:520px;display:grid;grid-template-columns:1fr 1fr;gap:2px} .gnav>li:hover .drop{opacity:1;visibility:visible;transform:translate(-50%,0)} .drop a{display:block;padding:11px 16px;font-size:14px;color:var(--text-soft);position:relative;transition:color .3s,background .3s,padding-left .3s} .drop a::before{content:'';position:absolute;left:6px;top:50%;width:0;height:1px;background:var(--gold-400);transition:width .35s var(--ease)} .drop a:hover{color:var(--gold-300);background:rgba(237,216,210,.07);padding-left:26px} .drop a:hover::before{width:12px} .head-actions{display:flex;align-items:center;gap:16px;flex-shrink:0} .tel-block{text-align:right;line-height:1.35;white-space:nowrap} .tel-block .lb{font-family:var(--ff-en);font-size:9.5px;letter-spacing:.24em;color:var(--muted);white-space:nowrap} .tel-block .no{font-family:var(--ff-en);font-size:21px;font-weight:400;letter-spacing:.05em;color:var(--gold-300);white-space:nowrap} .btn-login{ display:inline-flex;align-items:center;gap:10px;padding:13px 24px;font-size:13.5px;font-weight:500;letter-spacing:.1em; border:1px solid var(--line-gold);position:relative;overflow:hidden;color:var(--gold-300);white-space:nowrap;flex-shrink:0; transition:color .4s var(--ease),border-color .4s var(--ease); } .btn-login svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.4} .btn-login::before{content:'';position:absolute;inset:0;background:var(--gold-500);transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1} .btn-login:hover{color:var(--navy-900);border-color:var(--gold-400)} .btn-login:hover::before{transform:translateY(0)} .btn-login span{position:relative;z-index:1} .burger{display:none;width:46px;height:46px;position:relative;flex:none} .burger i{position:absolute;left:11px;width:24px;height:1.5px;background:var(--gold-300);transition:transform .45s var(--ease),opacity .3s} .burger i:nth-child(1){top:17px} .burger i:nth-child(2){top:23px} .burger i:nth-child(3){top:29px} body.menu-open .burger i:nth-child(1){transform:translateY(6px) rotate(45deg)} body.menu-open .burger i:nth-child(2){opacity:0} body.menu-open .burger i:nth-child(3){transform:translateY(-6px) rotate(-45deg)} /* モバイルメニュー */ .mnav{ position:fixed;inset:0;z-index:99;background:rgba(5,8,15,.98);backdrop-filter:blur(10px); padding:calc(var(--header-h) + 24px) 7% 60px;overflow-y:auto; opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s; } body.menu-open .mnav{opacity:1;visibility:visible} .mnav details{border-bottom:1px solid var(--line)} .mnav summary{list-style:none;padding:20px 4px;font-family:var(--ff-serif);font-size:19px;letter-spacing:.1em;cursor:pointer;display:flex;justify-content:space-between;align-items:center} .mnav summary::-webkit-details-marker{display:none} .mnav summary::after{content:'+';color:var(--gold-500);font-size:20px;font-family:var(--ff-en)} .mnav details[open] summary::after{content:'−'} .mnav details ul{padding:0 4px 18px} .mnav details ul a{display:block;padding:10px 0 10px 18px;font-size:15px;color:var(--text-soft);border-left:1px solid var(--line-gold)} .mnav .m-single{display:block;padding:20px 4px;font-family:var(--ff-serif);font-size:19px;letter-spacing:.1em;border-bottom:1px solid var(--line)} .mnav .m-cta{margin-top:34px;display:grid;gap:14px} .mnav .m-cta .btn{width:100%} /* ============================================================ ヒーロー:レーダー ============================================================ */ .hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden; background: radial-gradient(120% 90% at 78% 42%,rgba(30,48,79,.85),transparent 60%), radial-gradient(90% 80% at 12% 88%,rgba(20,32,56,.7),transparent 62%), linear-gradient(165deg,var(--ink-800) 0%,var(--ink-900) 55%,#0C1620 100%); } /* 斜めの光 */ .hero-diagonal{position:absolute;inset:0;overflow:hidden;pointer-events:none} .hero-diagonal i{position:absolute;top:-30%;height:160%;width:1px;background:linear-gradient(180deg,transparent,var(--line-gold),transparent);transform:rotate(14deg);opacity:.55} .hero-diagonal i:nth-child(1){left:22%} .hero-diagonal i:nth-child(2){left:26%;opacity:.25} .hero-diagonal i:nth-child(3){right:16%;opacity:.3} .hero-glow{position:absolute;width:520px;height:520px;border-radius:50%;pointer-events:none; background:radial-gradient(circle,rgba(237,216,210,.10),transparent 68%); transform:translate(-50%,-50%);transition:left .8s var(--ease),top .8s var(--ease);left:70%;top:45%} /* レーダー本体 */ .radar{ position:absolute;right:-6%;top:50%;transform:translateY(-50%); width:min(96vh,860px);aspect-ratio:1;pointer-events:none; } .radar-core{position:absolute;inset:0;border-radius:50%; background:radial-gradient(circle,rgba(30,48,79,.5) 0%,rgba(12,19,34,.25) 55%,transparent 72%)} .ring{position:absolute;border:1px solid rgba(237,216,210,.16);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)} .ring.r1{width:26%;height:26%} .ring.r2{width:48%;height:48%} .ring.r3{width:70%;height:70%} .ring.r4{width:92%;height:92%;border-color:rgba(237,216,210,.24)} .ring.pulse{animation:ringPulse 4.5s var(--ease) infinite} @keyframes ringPulse{ 0%{transform:translate(-50%,-50%) scale(.28);opacity:0} 25%{opacity:.55} 100%{transform:translate(-50%,-50%) scale(1);opacity:0} } .cross{position:absolute;top:50%;left:50%;background:rgba(237,216,210,.13)} .cross.h{width:92%;height:1px;transform:translate(-50%,-50%)} .cross.v{height:92%;width:1px;transform:translate(-50%,-50%)} .cross.d1{width:92%;height:1px;transform:translate(-50%,-50%) rotate(45deg)} .cross.d2{width:92%;height:1px;transform:translate(-50%,-50%) rotate(-45deg)} .tick{position:absolute;top:50%;left:50%;width:46%;height:1px;transform-origin:0 50%;pointer-events:none} .tick::after{content:'';position:absolute;right:0;width:10px;height:1px;background:rgba(237,216,210,.35)} .sweep{ position:absolute;inset:0;border-radius:50%; background:conic-gradient(from 0deg, rgba(237,216,210,0) 0deg, rgba(237,216,210,0) 296deg, rgba(237,216,210,.03) 332deg, rgba(237,216,210,.09) 352deg, rgba(237,216,210,.20) 359.3deg, rgba(237,216,210,0) 360deg); animation:sweep 5.5s linear infinite; mask-image:radial-gradient(circle,rgba(0,0,0,.9) 0%,rgba(0,0,0,.7) 52%,transparent 88%); } @keyframes sweep{to{transform:rotate(360deg)}} .sweep-line{position:absolute;top:50%;left:50%;width:46%;height:1px;transform-origin:0 50%; background:linear-gradient(90deg,rgba(237,216,210,.75),rgba(237,216,210,0)); animation:sweep 5.5s linear infinite;box-shadow:0 0 12px rgba(237,216,210,.35)} .blip{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--gold-300); box-shadow:0 0 0 0 rgba(237,216,210,.55);opacity:0;animation:blip 5.5s linear infinite} .blip::after{content:attr(data-l);position:absolute;left:16px;top:-8px;white-space:nowrap; font-family:var(--ff-en);font-size:10px;letter-spacing:.2em;color:rgba(237,216,210,.85)} @keyframes blip{ 0%,4%{opacity:0;box-shadow:0 0 0 0 rgba(237,216,210,.5)} 6%{opacity:1} 30%{opacity:.85;box-shadow:0 0 0 16px rgba(237,216,210,0)} 70%{opacity:.25} 100%{opacity:0} } .b1{top:31%;left:57%;animation-delay:.5s} .b2{top:62%;left:38%;animation-delay:2.1s} .b3{top:47%;left:73%;animation-delay:3.4s} .b4{top:70%;left:62%;animation-delay:4.4s} /* ヒーロー・コピー */ .hero-inner{position:relative;z-index:3;width:min(1440px,94%);margin-inline:auto;padding:calc(var(--header-h) + 30px) 0 40px} .hero-side{ position:absolute;left:-52px;top:30%;font-family:var(--ff-en);font-size:10.5px;font-weight:300; letter-spacing:.46em;color:var(--muted);writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap; } .hero-copy{max-width:760px} .hero-tag{ display:inline-flex;align-items:center;gap:12px;padding:9px 20px;margin-bottom:34px; border:1px solid var(--line-gold);font-family:var(--ff-en);font-size:11.5px;letter-spacing:.26em;color:var(--gold-300); background:rgba(237,216,210,.06); } .hero-tag .dot{width:6px;height:6px;border-radius:50%;background:#5FD38A;box-shadow:0 0 0 0 rgba(95,211,138,.7);animation:live 2.4s infinite} @keyframes live{70%{box-shadow:0 0 0 9px rgba(95,211,138,0)}100%{box-shadow:0 0 0 0 rgba(95,211,138,0)}} .hero-h1{font-family:var(--ff-serif);font-weight:600;font-size:clamp(38px,6.2vw,82px);line-height:1.32;letter-spacing:.06em;text-shadow:0 8px 40px rgba(0,0,0,.6)} .hero-h1 .ln{display:block;overflow:hidden} .hero-h1 .ln>span{display:block;transform:translateY(110%);opacity:0;animation:riseIn 1.15s var(--ease) forwards} .hero-h1 .ln:nth-child(2)>span{animation-delay:.16s} .hero-h1 .ln:nth-child(3)>span{animation-delay:.32s} @keyframes riseIn{to{transform:translateY(0);opacity:1}} .hero-h1 em{font-style:normal;background:linear-gradient(100deg,var(--gold-600),var(--gold-300) 45%,var(--gold-500)); -webkit-background-clip:text;background-clip:text;color:transparent} .hero-lead{margin-top:34px;font-size:17.5px;line-height:2.15;color:var(--text-soft);max-width:34em; opacity:0;animation:fadeUp 1s var(--ease) .62s forwards} .hero-btns{margin-top:46px;display:flex;flex-wrap:wrap;gap:18px;opacity:0;animation:fadeUp 1s var(--ease) .78s forwards} @keyframes fadeUp{from{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}} .hero-facts{ margin-top:clamp(52px,7vh,92px);display:flex;flex-wrap:wrap;gap:22px clamp(24px,4vw,60px);position:relative;z-index:3; opacity:0;animation:fadeUp 1s var(--ease) .95s forwards; } .hero-facts div{padding-left:20px;border-left:1px solid var(--line-gold)} .hero-facts .n{font-family:var(--ff-en);font-size:clamp(24px,2.6vw,34px);font-weight:300;color:var(--gold-300);line-height:1.2} .hero-facts .n small{font-size:14px;letter-spacing:.1em;margin-left:3px} .hero-facts .t{font-size:12.5px;letter-spacing:.14em;color:var(--muted)} .scroll-cue{position:absolute;right:5%;bottom:40px;z-index:3;display:flex;flex-direction:column;align-items:center;gap:12px; font-family:var(--ff-en);font-size:10px;letter-spacing:.34em;color:var(--muted);writing-mode:vertical-rl} .scroll-cue::after{content:'';width:1px;height:70px;background:linear-gradient(180deg,var(--gold-500),transparent);position:relative} .scroll-cue i{position:absolute;bottom:0;right:calc(50% - .5px);width:1px;height:70px;overflow:hidden} .scroll-cue i::before{content:'';position:absolute;width:1px;height:24px;background:var(--gold-300);animation:cue 2.2s var(--ease) infinite} @keyframes cue{0%{transform:translateY(-26px)}100%{transform:translateY(72px)}} /* ============================================================ スクロールリビール ============================================================ */ .rv{opacity:0;transform:translateY(38px);transition:opacity 1s var(--ease),transform 1s var(--ease)} .rv.in{opacity:1;transform:none} .rv-d1{transition-delay:.1s}.rv-d2{transition-delay:.2s}.rv-d3{transition-delay:.3s} .rv-d4{transition-delay:.4s}.rv-d5{transition-delay:.5s}.rv-d6{transition-delay:.6s} .rv-d7{transition-delay:.7s}.rv-d8{transition-delay:.8s} /* ============================================================ お知らせ ============================================================ */ .news{background:linear-gradient(180deg,var(--navy-800),var(--navy-850));border-top:1px solid var(--line-gold)} .news-grid{display:grid;grid-template-columns:300px 1fr;gap:clamp(30px,5vw,70px);align-items:start} .news-list li{border-bottom:1px solid var(--line)} .news-list a{display:grid;grid-template-columns:130px 118px 1fr auto;gap:20px;align-items:center;padding:22px 6px;transition:background .4s,padding-left .4s} .news-list a:hover{background:rgba(237,216,210,.05);padding-left:18px} .news-list time{font-family:var(--ff-en);font-size:14px;letter-spacing:.1em;color:var(--muted)} .cat{display:inline-block;text-align:center;font-size:11.5px;letter-spacing:.14em;padding:5px 0;border:1px solid var(--line-gold);color:var(--gold-300)} .cat.imp{background:rgba(237,216,210,.14)} .news-list p{font-size:16px;transition:color .35s} .news-list a:hover p{color:var(--gold-300)} .news-list .arw2{width:18px;height:1px;background:var(--gold-500);position:relative;transition:width .4s var(--ease)} .news-list .arw2::after{content:'';position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid var(--gold-500);border-right:1px solid var(--gold-500);transform:rotate(45deg)} .news-list a:hover .arw2{width:30px} /* ============================================================ サービス ============================================================ */ .services{background:var(--navy-900);position:relative} .services::before{content:'';position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--line-gold),transparent)} .svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden} .svc{ position:relative;padding:44px 32px 40px;background:var(--navy-850);overflow:hidden; transition:transform .6s var(--ease),background .6s var(--ease); } .svc::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .6s var(--ease); background:linear-gradient(160deg,rgba(237,216,210,.14),transparent 55%)} .svc::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:2px; background:linear-gradient(90deg,var(--gold-600),var(--gold-300));transform:scaleX(0);transform-origin:left; transition:transform .6s var(--ease)} .svc:hover{background:var(--navy-750);z-index:2} .svc:hover::before{opacity:1} .svc:hover::after{transform:scaleX(1)} .svc-no{font-family:var(--ff-en);font-size:11px;letter-spacing:.28em;color:var(--gold-600);position:relative;z-index:1} .svc-ico{width:56px;height:56px;margin:20px 0 24px;position:relative;z-index:1; transition:transform .7s var(--ease)} .svc-ico svg{width:100%;height:100%;stroke:var(--gold-400);fill:none;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round} .svc:hover .svc-ico{transform:translateY(-6px) scale(1.06)} .svc h3{font-family:var(--ff-serif);font-size:20px;font-weight:600;letter-spacing:.08em;margin-bottom:14px;position:relative;z-index:1} .svc p{font-size:14.5px;line-height:1.95;color:var(--muted);position:relative;z-index:1} .svc .badge{display:inline-block;margin-top:18px;font-family:var(--ff-en);font-size:10.5px;letter-spacing:.18em; padding:4px 12px;border:1px solid var(--line-gold);border-radius:999px;color:var(--gold-400);position:relative;z-index:1} /* ============================================================ 実績・数値 ============================================================ */ .stats{position:relative;background: linear-gradient(180deg,var(--navy-900),var(--navy-850) 40%,var(--navy-900));overflow:hidden} .stats-radar{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:1100px;aspect-ratio:1;opacity:.4;pointer-events:none} .stat-grid{display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;position:relative;padding:22px 20px;z-index:1; width:100vw;left:50%;transform:translateX(-50%)} .stat-flourish{display:flex;align-items:center;gap:18px;flex:1;min-width:0} .stat-flourish .fl-bar{width:48px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(4px)} .stat-flourish .fl-bar.sm{height:110px;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)} .stat-flourish .fl-bar.md{height:200px;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.22)} .stat-flourish .fl-bar.lg{height:270px;background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.32)} .stat-flourish .fl-band{flex:1;height:28px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden} /* ボタンを押すと波紋→長方形→帯に電流 */ .stat-grid.wave-active .fl-bar{animation:barPulse .55s ease-out both} .stat-grid.wave-active .fl-bar.lg{animation-delay:0s} .stat-grid.wave-active .fl-bar.md{animation-delay:.13s} .stat-grid.wave-active .fl-bar.sm{animation-delay:.26s} @keyframes barPulse{ 0%{filter:brightness(1);box-shadow:none} 40%{filter:brightness(2);box-shadow:0 0 20px 5px rgba(255,255,255,.4)} 100%{filter:brightness(1);box-shadow:none} } .stat-flourish .fl-band::after{content:'';position:absolute;top:0;bottom:0;width:44%;opacity:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent)} .stat-flourish.left .fl-band::after{right:-44%} .stat-flourish.right .fl-band::after{left:-44%} .stat-grid.wave-active .stat-flourish.left .fl-band::after{animation:currentFlowLeft .6s ease-out .4s both} .stat-grid.wave-active .stat-flourish.right .fl-band::after{animation:currentFlowRight .6s ease-out .4s both} @keyframes currentFlowLeft{0%{right:-44%;opacity:0}15%{opacity:1}85%{opacity:1}100%{right:100%;opacity:0}} @keyframes currentFlowRight{0%{left:-44%;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:100%;opacity:0}} .tr-button{transition:transform .15s ease} .tr-button:active{transform:scale(.92)} .tr-button::before{content:'';position:absolute;inset:0;border-radius:50%; box-shadow:0 0 0 0 rgba(201,168,158,.7);pointer-events:none} .stat-grid.wave-active .tr-button::before{animation:btnRipple .7s ease-out} .stat-grid.wave-active .tr-button{animation:btnFlash .5s ease-out} @keyframes btnRipple{ 0%{box-shadow:0 0 0 0 rgba(201,168,158,.7)} 100%{box-shadow:0 0 0 26px rgba(201,168,158,0)} } @keyframes btnFlash{ 0%{filter:brightness(1)} 30%{filter:brightness(1.6)} 100%{filter:brightness(1)} } .stat{padding:34px 34px 50px;display:flex;align-items:center;justify-content:center;position:relative;z-index:0} .stat::after{content:'';position:absolute;left:0;right:0;top:-60px;bottom:-24px;z-index:-1; background:rgba(255,255,255,.24);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.32); clip-path:polygon(32.5% 0,67.5% 0,67.5% 60px,100% 60px,100% calc(100% - 24px),85% calc(100% - 24px),85% 100%,15% 100%,15% calc(100% - 24px),0 calc(100% - 24px),0 60px,32.5% 60px)} .stat.stat.stat{background:transparent!important;border:none!important;backdrop-filter:none!important} .stat .tr-cap-top{position:absolute;left:50%;top:-96px;transform:translateX(-50%);width:100px;height:56px;border-radius:50% 50% 0 0/64% 64% 0 0;background:var(--gold-400);z-index:3} .stat .tr-cap-brim{position:absolute;left:50%;top:-48px;transform:translateX(-50%);width:114px;height:14px;border-radius:5px;background:var(--gold-500);z-index:3} .stat .tr-cap-band{position:absolute;left:50%;top:-58px;transform:translateX(-50%);width:100px;height:5px;background:var(--gold-600);z-index:4} .stat .tr-antenna{position:absolute;top:-112px;right:14px;width:8px;height:110px;background:var(--gold-500);transform:rotate(-12deg);transform-origin:bottom center;z-index:1} .stat .tr-antenna::after{content:'';position:absolute;top:-18px;left:50%;transform:translateX(-50%);width:17px;height:17px;border-radius:50%;background:var(--gold-500)} .stat .tr-dot{position:absolute;top:16px;left:16px;width:9px;height:9px;border-radius:50%;background:#f2a33c;box-shadow:0 0 4px rgba(242,163,60,.6);z-index:2} .stat .tr-dot.tr-dot2{top:34px} .stat .tr-button{position:relative;width:200px;height:200px;max-width:100%;aspect-ratio:1;border-radius:50%;z-index:1; display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;font-family:inherit;text-align:center;padding:0; background:var(--sand);border:6px solid #f6ded8;box-shadow:0 10px 22px rgba(0,0,0,.28)} .stat .lb.lb{font-family:var(--ff-en);font-size:10.5px;letter-spacing:.24em;color:#4a2e26!important} .stat .val{font-family:var(--ff-en);font-weight:200;font-size:clamp(34px,4vw,52px);line-height:1;margin-top:8px} .stat .val .count.count{font-family:var(--ff-en);font-weight:700;font-size:1.05em;letter-spacing:.03em; background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:#4a2e26!important;color:#4a2e26!important} .stat .val small{font-size:.34em;letter-spacing:.06em;margin-left:5px;-webkit-text-fill-color:#6b4a3f} .stat .cap{margin-top:8px;font-size:12px;letter-spacing:.06em;color:#6b4a3f} /* 導入事例 */ .case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:70px} .case{position:relative;border:1px solid var(--line);background:var(--navy-850);overflow:hidden;transition:transform .6s var(--ease),border-color .6s var(--ease)} .case:hover{transform:translateY(-8px);border-color:var(--line-gold)} .case-img{height:190px;position:relative;overflow:hidden; background:linear-gradient(150deg,var(--navy-600),var(--navy-800))} .case-img::before{content:'';position:absolute;inset:0; background-image:repeating-linear-gradient(115deg,rgba(237,216,210,.10) 0 2px,transparent 2px 26px)} .case-img .tagline{position:absolute;left:22px;bottom:18px;font-family:var(--ff-serif);font-size:22px;letter-spacing:.1em;color:rgba(255,255,255,.9)} .case-img .kind{position:absolute;right:0;top:0;background:var(--gold-500);color:var(--navy-900);font-size:11.5px;font-weight:700;letter-spacing:.14em;padding:7px 14px} .case-img-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block} .case-body{padding:28px 26px 32px} .case-body h4{font-family:var(--ff-serif);font-size:18px;font-weight:600;line-height:1.6;margin-bottom:12px} .case-body p{font-size:14.5px;color:var(--muted);line-height:1.9} .case-meta{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;gap:16px;font-size:12.5px;color:var(--gold-500);letter-spacing:.1em} /* エリア */ .area{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px} .area li{padding:9px 20px;border:1px solid var(--line);font-size:14px;letter-spacing:.1em;color:var(--text-soft); transition:border-color .4s,color .4s,background .4s} .area li:hover{border-color:var(--gold-500);color:var(--gold-300);background:rgba(237,216,210,.07)} /* ============================================================ 流れ ============================================================ */ .flow{background:var(--navy-850)} .flow-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:step} .step{position:relative;padding:0 20px;text-align:center} .step:not(:last-child)::before{content:'';position:absolute;top:37px;left:50%;width:100%;height:1px;background:var(--line-gold)} .step .num{position:relative;z-index:1;width:74px;height:74px;margin:0 auto 24px;display:grid;place-items:center; border:1px solid var(--line-gold);border-radius:50%;background:var(--navy-850); font-family:var(--ff-en);font-size:22px;font-weight:300;color:var(--gold-300); transition:background .5s var(--ease),transform .5s var(--ease),box-shadow .5s} .step:hover .num{background:var(--gold-500);color:var(--navy-900);transform:scale(1.08);box-shadow:0 0 34px -6px rgba(237,216,210,.6)} .step h4{font-family:var(--ff-serif);font-size:17px;font-weight:600;letter-spacing:.07em;margin-bottom:10px} .step p{font-size:13.5px;color:var(--muted);line-height:1.9} /* ============================================================ 採用 ============================================================ */ .recruit{position:relative;overflow:hidden; background:linear-gradient(115deg,var(--navy-900) 0%,var(--navy-700) 48%,var(--navy-900) 100%)} .recruit::before{content:'';position:absolute;inset:0; background-image:repeating-linear-gradient(122deg,rgba(237,216,210,.07) 0 1px,transparent 1px 34px)} .recruit-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,88px);align-items:center} .rec-points{display:grid;gap:2px;background:var(--line-gold);border:1px solid var(--line-gold)} .rec-point{background:rgba(5,8,15,.72);padding:28px 30px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center; transition:background .5s,transform .5s var(--ease)} .rec-point:hover{background:rgba(237,216,210,.10);transform:translateX(8px)} .rec-point .ic{width:44px;height:44px;stroke:var(--gold-400);fill:none;stroke-width:1.1} .rec-point strong{display:block;font-family:var(--ff-serif);font-size:18px;letter-spacing:.06em;margin-bottom:4px} .rec-point span{font-size:14px;color:var(--muted)} /* ============================================================ お問い合わせ ============================================================ */ .contact{background:var(--navy-900)} .cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line-gold);border:1px solid var(--line-gold)} .cta-card{background:var(--navy-850);padding:clamp(36px,4.4vw,58px);position:relative;overflow:hidden;transition:background .55s} .cta-card::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 0%,rgba(237,216,210,.16),transparent 62%);opacity:0;transition:opacity .55s} .cta-card:hover{background:var(--navy-750)} .cta-card:hover::before{opacity:1} .cta-card .ttl{font-family:var(--ff-serif);font-size:22px;font-weight:600;letter-spacing:.08em;margin-bottom:12px;position:relative} .cta-card p{font-size:14.5px;color:var(--muted);margin-bottom:28px;position:relative} .cta-tel{font-family:var(--ff-en);font-weight:300;font-size:clamp(34px,4vw,48px);letter-spacing:.03em;color:var(--gold-300);line-height:1.1;position:relative;display:block} .cta-note{margin-top:14px;font-size:13px;color:var(--muted);letter-spacing:.08em;position:relative} /* 社員ログイン */ .login-band{border:1px solid var(--line-gold);border-radius:20px;background: linear-gradient(120deg,rgba(30,48,79,.65),rgba(5,8,15,.9));padding:clamp(32px,4vw,50px); display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center;margin-top:70px;position:relative;overflow:hidden} .login-band::before{content:'';position:absolute;right:-60px;top:-60px;width:280px;height:280px;border:1px solid var(--line-gold);border-radius:50%} .login-band::after{content:'';position:absolute;right:10px;top:10px;width:140px;height:140px;border:1px solid rgba(237,216,210,.14);border-radius:50%} .login-roles{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px} .login-roles li{font-size:12.5px;letter-spacing:.1em;padding:6px 14px;border:1px solid var(--line);color:var(--text-soft)} /* ============================================================ フッター ============================================================ */ .footer{background:var(--ink-900);border-top:1px solid var(--line-gold);padding-top:clamp(64px,7vw,96px)} .f-top{display:grid;grid-template-columns:1.15fr 2.6fr;gap:clamp(34px,5vw,70px);padding-bottom:60px} .f-brand p{margin-top:22px;font-size:13.5px;color:var(--muted);line-height:2} .f-map{display:grid;grid-template-columns:repeat(5,1fr);gap:20px} .f-map h5{font-family:var(--ff-en);font-size:11px;letter-spacing:.24em;color:var(--gold-500);padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line)} .f-map li a{display:block;padding:6px 0;font-size:13px;color:var(--muted);transition:color .3s,transform .3s} .f-map li a:hover{color:var(--gold-300);transform:translateX(5px)} .f-bottom{border-top:1px solid var(--line);padding:26px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap} .f-bottom .links{display:flex;gap:26px;font-size:13px;color:var(--muted)} .f-bottom .links a:hover{color:var(--gold-300)} .f-bottom .cr{font-family:var(--ff-en);font-size:11.5px;letter-spacing:.16em;color:#5C6B84} /* 追従CTA(モバイル) */ .sticky-cta{display:none} @media (max-width:900px){ br.pc{display:none} } /* ============================================================ レスポンシブ ============================================================ */ @media (max-width:1180px){ .svc-grid{grid-template-columns:repeat(2,1fr)} .case-grid{grid-template-columns:1fr 1fr} .flow-grid{grid-template-columns:repeat(3,1fr);row-gap:48px} .step:nth-child(3)::before{display:none} .f-map{grid-template-columns:repeat(2,1fr)} } @media (max-width:1380px){ .gnav,.head-actions .tel-block{display:none} .burger{display:block} .radar{right:-34%;opacity:.42} .hero-side{display:none} .blip::after{display:none} } @media (max-width:860px){ :root{--header-h:68px} body{font-size:16px} .news-grid{grid-template-columns:1fr} .news-list a{grid-template-columns:1fr auto;row-gap:6px;padding:20px 4px} .news-list time{grid-column:1} .cat{grid-column:2;grid-row:1;width:110px} .news-list p{grid-column:1/-1} .news-list .arw2{display:none} .recruit-inner,.cta-grid,.f-top{grid-template-columns:1fr} .login-band{grid-template-columns:1fr} .hero-facts{margin-top:46px;gap:20px 28px} .hero-facts .n{font-size:26px} .scroll-cue{display:none} .hero{min-height:auto;padding:104px 0 84px} .hero .radar{top:34%;right:-46%;opacity:.3} .hero-h1{font-size:clamp(34px,9vw,52px)} .btn{width:100%;padding:18px 26px} .hero-btns{gap:14px} .btn-login span{display:none} .btn-login{padding:12px 14px} } @media (max-width:640px){ .svc-grid,.case-grid,.flow-grid,.f-map{grid-template-columns:1fr} .stat{padding:32px 26px 46px} .stat::after{top:-38px;bottom:-14px;clip-path:polygon(32.5% 0,67.5% 0,67.5% 38px,100% 38px,100% calc(100% - 14px),85% calc(100% - 14px),85% 100%,15% 100%,15% calc(100% - 14px),0 calc(100% - 14px),0 38px,32.5% 38px)} .stat .tr-cap-top{top:-62px;width:64px;height:36px} .stat .tr-cap-brim{top:-32px;width:74px;height:10px} .stat .tr-cap-band{top:-38px;width:64px;height:4px} .stat .tr-antenna{top:-72px;right:8px;width:6px;height:70px} .stat .tr-antenna::after{width:12px;height:12px;top:-13px} .stat .tr-button{width:150px;height:150px} .stat{padding:26px 26px 40px} .stat-flourish{gap:10px} .stat-flourish .fl-bar{width:24px} .stat-flourish .fl-bar.sm{height:56px} .stat-flourish .fl-bar.md{height:100px} .stat-flourish .fl-bar.lg{height:136px} .stat-flourish .fl-band{width:32px;height:16px} .step::before{display:none} .sticky-cta{display:grid;position:fixed;bottom:0;left:0;width:100%;z-index:90;grid-template-columns:1fr 1fr; border-top:1px solid var(--line-gold)} .sticky-cta a{padding:16px 8px;text-align:center;font-size:14px;font-weight:700;letter-spacing:.08em} .sticky-cta .t{background:var(--navy-750);color:var(--gold-300)} .sticky-cta .m{background:linear-gradient(120deg,var(--gold-600),var(--gold-400));color:var(--navy-900)} .footer{padding-bottom:60px} } @media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important} .rv{opacity:1;transform:none} } /* ============================================================ 下層ページ共通 ============================================================ */ .page-hero{ position:relative;padding:calc(var(--header-h) + 92px) 0 78px;overflow:hidden; background: radial-gradient(110% 130% at 82% 30%,rgba(30,48,79,.8),transparent 62%), linear-gradient(160deg,var(--navy-850),var(--navy-900) 70%); border-bottom:1px solid var(--line-gold); } .page-hero .radar{right:-10%;width:min(70vh,600px);opacity:.5} .page-hero .crumb{font-family:var(--ff-en);font-size:11.5px;letter-spacing:.2em;color:var(--muted);margin-bottom:22px} .page-hero .crumb a:hover{color:var(--gold-300)} .page-hero .crumb span{margin:0 10px;color:var(--gold-600)} .page-hero .en{font-family:var(--ff-en);font-weight:200;font-size:12px;letter-spacing:.34em;color:var(--gold-500);display:block;margin-bottom:14px} .page-hero h1{font-family:var(--ff-serif);font-weight:600;font-size:clamp(30px,4.6vw,52px);letter-spacing:.08em;line-height:1.4} .page-hero p{margin-top:20px;color:var(--text-soft);max-width:56ch;font-size:16px} /* ページ内リンク(アンカーナビ) */ .anchors{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:0} .anchors a{flex:1 1 auto;text-align:center;padding:16px 20px;background:var(--navy-850);font-size:14px;letter-spacing:.06em; color:#241E1B;transition:background .4s,color .4s;white-space:nowrap} .anchors a:hover{background:rgba(237,216,210,.35);color:#8a5a2e} /* 汎用ブロック */ .block{margin-bottom:clamp(64px,7vw,110px);--gold-300:#3D5570;--gold-400:#4A6485} .block:last-child{margin-bottom:0} .h3{font-family:var(--ff-serif);font-size:clamp(21px,2.4vw,28px);font-weight:600;letter-spacing:.07em;margin-bottom:26px;padding-left:20px;position:relative} .h3::before{content:'';position:absolute;left:0;top:.28em;bottom:.28em;width:3px;background:linear-gradient(180deg,var(--gold-300),var(--gold-600))} .p{color:var(--text-soft);margin-bottom:20px} .p:last-child{margin-bottom:0} /* 定義テーブル */ .tbl{width:100%;border-collapse:collapse;border-top:1px solid var(--line)} .tbl th,.tbl td{border-bottom:1px solid var(--line);padding:20px 18px;text-align:left;vertical-align:top;font-size:15.5px} .tbl th{width:230px;color:var(--gold-400);font-weight:500;letter-spacing:.08em;background:rgba(255,255,255,.02)} .tbl td{color:var(--text-soft)} /* 沿革 */ .history{border-left:1px solid var(--line-gold);padding-left:34px} .history li{position:relative;padding-bottom:34px} .history li::before{content:'';position:absolute;left:-40px;top:11px;width:11px;height:11px;border-radius:50%; background:var(--navy-900);border:1px solid var(--gold-500);transition:background .4s,transform .4s} .history li:hover::before{background:var(--gold-400);transform:scale(1.25)} .history .y{font-family:var(--ff-en);font-size:17px;letter-spacing:.1em;color:var(--gold-300);margin-bottom:4px} .history p{color:var(--text-soft);font-size:15.5px} /* 組織図 */ .org{display:grid;gap:16px;justify-items:center} .org .row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;width:100%} .org .box{border:1px solid var(--line-gold);background:rgba(30,48,79,.35);padding:16px 30px;text-align:center; font-size:15px;letter-spacing:.08em;min-width:180px;transition:background .4s,transform .4s} .org .box:hover{background:rgba(237,216,210,.14);transform:translateY(-4px)} .org .box.top{background:linear-gradient(120deg,var(--gold-600),var(--gold-400));color:var(--navy-900);font-weight:700;border-color:transparent} .org .bar{width:1px;height:26px;background:var(--line-gold)} /* カードグリッド汎用 */ .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px} .cards.c2{grid-template-columns:repeat(2,1fr)} .cards.c4{grid-template-columns:repeat(4,1fr)} .card{border:1px solid var(--line);border-radius:18px;background:var(--navy-850);padding:32px 28px;transition:border-color .5s,transform .5s var(--ease),background .5s,box-shadow .5s var(--ease)} .card:hover{transform:translateY(-4px) rotate(-.3deg);box-shadow:0 14px 30px -12px rgba(0,0,0,.35)} .card:hover{border-color:var(--line-gold);transform:translateY(-6px);background:var(--navy-750)} .card h4{font-family:var(--ff-serif);font-size:18px;font-weight:600;letter-spacing:.06em;margin-bottom:12px} .card p{font-size:14.5px;color:var(--muted)} .card .k{font-family:var(--ff-en);font-size:11px;letter-spacing:.24em;color:var(--gold-600);margin-bottom:14px} /* 業務内容 詳細 */ .detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,60px);align-items:center; border:1px solid var(--line);border-radius:20px;background:var(--navy-850);margin-bottom:26px;overflow:hidden} .detail:nth-child(even) .detail-visual{order:2} .detail-visual{aspect-ratio:4/3;position:relative;background:linear-gradient(150deg,var(--navy-600),var(--navy-800));overflow:hidden} .detail-visual-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block} .detail-visual::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(118deg,rgba(237,216,210,.10) 0 2px,transparent 2px 24px)} .detail-visual svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34%;stroke:var(--gold-400);fill:none;stroke-width:1;opacity:.9} .detail-body{padding:36px 40px 40px} .detail-body .k{font-family:var(--ff-en);font-size:11px;letter-spacing:.26em;color:var(--gold-600)} .detail-body h3{font-family:var(--ff-serif);font-size:clamp(22px,2.6vw,28px);font-weight:600;letter-spacing:.07em;margin:12px 0 16px} .detail-body p{color:var(--text-soft);font-size:15.5px;margin-bottom:20px} .detail-body ul{display:grid;gap:9px} .detail-body li{position:relative;padding-left:22px;font-size:14.5px;color:var(--muted)} .detail-body li::before{content:'';position:absolute;left:0;top:.72em;width:9px;height:1px;background:var(--gold-500)} /* FAQ */ .faq details{border:1px solid var(--line);background:var(--navy-850);margin-bottom:12px;transition:border-color .4s} .faq details[open]{border-color:var(--line-gold)} .faq summary{list-style:none;cursor:pointer;padding:22px 56px 22px 26px;position:relative;font-size:16px;font-weight:500;letter-spacing:.04em} .faq summary::-webkit-details-marker{display:none} .faq summary::before{content:'Q';font-family:var(--ff-en);color:var(--gold-400);margin-right:14px;font-size:15px} .faq summary::after{content:'';position:absolute;right:26px;top:50%;width:11px;height:11px; border-right:1px solid var(--gold-500);border-bottom:1px solid var(--gold-500); transform:translateY(-70%) rotate(45deg);transition:transform .4s var(--ease)} .faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)} .faq .a{padding:0 26px 26px 62px;color:var(--text-soft);font-size:15px;border-top:1px solid var(--line);padding-top:22px;margin:0 26px 26px} /* フォーム */ .form{display:grid;gap:24px;max-width:860px} .form .row{display:grid;gap:9px} .form .row.two{grid-template-columns:1fr 1fr;gap:20px} .form label{font-size:14.5px;letter-spacing:.08em;color:var(--text-soft)} .form label .req{display:inline-block;margin-left:10px;font-size:11px;letter-spacing:.1em;padding:3px 9px; background:rgba(237,216,210,.16);border:1px solid var(--line-gold);color:var(--gold-300)} .form input,.form select,.form textarea{ width:100%;padding:15px 18px;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px; color:var(--text);font-family:inherit;font-size:16px;transition:border-color .35s,background .35s} .form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold-500);background:rgba(237,216,210,.06)} .form textarea{min-height:170px;resize:vertical} .form .note{font-size:13.5px;color:var(--muted)} .form .submit{justify-self:start;margin-top:8px} /* ギャラリー */ .gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px} .gal{aspect-ratio:4/3;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:16px; background:linear-gradient(150deg,var(--navy-600),var(--navy-800));transition:transform .6s var(--ease),border-color .6s} .gal::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(120deg,rgba(237,216,210,.10) 0 2px,transparent 2px 22px)} .gal span{position:absolute;left:16px;bottom:14px;font-size:13px;letter-spacing:.1em;color:rgba(255,255,255,.85)} .gal-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block} .gal-photo-full{background:#FBF7F0} .gal-photo-full img{object-fit:contain;background:#FBF7F0} .gal:hover{transform:scale(1.03);border-color:var(--line-gold);z-index:2} /* 社員の声 */ .voice{display:grid;grid-template-columns:180px 1fr;gap:30px;border:1px solid var(--line);border-radius:18px;background:var(--navy-850); padding:32px;margin-bottom:18px;transition:border-color .5s} .voice:hover{border-color:var(--line-gold)} .voice .ph{aspect-ratio:1;border-radius:50%;background:linear-gradient(150deg,var(--navy-600),var(--navy-800)); display:grid;place-items:center;font-family:var(--ff-serif);font-size:34px;color:var(--gold-400);border:1px solid var(--line-gold)} .voice h4{font-family:var(--ff-serif);font-size:19px;font-weight:600;margin-bottom:6px} .voice .meta{font-size:13px;color:var(--gold-500);letter-spacing:.1em;margin-bottom:16px} .voice p{color:var(--text-soft);font-size:15px} /* 一日の流れ */ .day li{display:grid;grid-template-columns:110px 1fr;gap:26px;padding:22px 0;border-bottom:1px solid var(--line)} .day .t{font-family:var(--ff-en);font-size:19px;color:var(--gold-300);letter-spacing:.06em} .day strong{display:block;font-family:var(--ff-serif);font-size:17px;font-weight:600;margin-bottom:6px} .day span{font-size:14.5px;color:var(--muted)} /* 規約・本文 */ .legal h3{font-family:var(--ff-serif);font-size:19px;font-weight:600;margin:36px 0 14px;color:var(--gold-300)} .legal p,.legal li{color:var(--text-soft);font-size:15.5px} .legal ol{padding-left:1.4em;margin:10px 0} .legal ol li{list-style:decimal;padding:4px 0} /* サイトマップ */ .smap{display:grid;grid-template-columns:repeat(3,1fr);gap:36px} .smap h4{font-family:var(--ff-en);font-size:12px;letter-spacing:.24em;color:var(--gold-500); padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--line)} .smap a{display:block;padding:8px 0 8px 18px;font-size:14.5px;color:var(--text-soft);position:relative;transition:color .3s,transform .3s} .smap a::before{content:'';position:absolute;left:0;top:1.1em;width:8px;height:1px;background:var(--gold-600)} .smap a:hover{color:var(--gold-300);transform:translateX(4px)} /* ============================================================ ログイン画面 ============================================================ */ .login-page{min-height:100svh;display:grid;place-items:center;padding:120px 5% 80px;position:relative;overflow:hidden; background:radial-gradient(90% 80% at 50% 20%,rgba(40,65,85,.75),transparent 60%),linear-gradient(160deg,var(--ink-800),var(--ink-900))} .login-card{width:min(520px,100%);border:1px solid var(--line-gold);background:rgba(8,13,26,.86); backdrop-filter:blur(10px);padding:clamp(34px,4vw,52px);position:relative;z-index:2} .login-card .lc-head{text-align:center;margin-bottom:34px} .login-card .lc-head .en{font-family:var(--ff-en);font-size:11px;letter-spacing:.32em;color:var(--gold-500)} .login-card .lc-head h1{font-family:var(--ff-serif);font-size:26px;font-weight:600;letter-spacing:.1em;margin-top:10px} .login-card .lc-head p{font-size:14px;color:var(--muted);margin-top:12px} .role-pick{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:26px} .role-pick a{border:1px solid var(--line);padding:14px 10px;text-align:center;font-size:14px;letter-spacing:.06em; color:var(--text-soft);transition:border-color .4s,background .4s,color .4s} .role-pick a:hover{border-color:var(--gold-500);background:rgba(237,216,210,.1);color:var(--gold-300)} .login-foot{text-align:center;margin-top:26px;font-size:13px;color:var(--muted)} .login-foot a{color:var(--gold-400)} /* ============================================================ 管理画面(デモ) ============================================================ */ body.app{background:var(--navy-900)} .app-wrap{display:grid;grid-template-columns:264px 1fr;min-height:100svh} .side{background:var(--ink-900);border-right:1px solid var(--line-gold);padding:26px 0;position:sticky;top:0;height:100svh;overflow-y:auto} .side .brand{display:flex;align-items:center;gap:12px;padding:0 24px 24px;border-bottom:1px solid var(--line);margin-bottom:18px} .side .brand svg{width:32px;height:36px} .side .brand strong{font-family:var(--ff-serif);font-size:16px;letter-spacing:.12em} .side .brand span{display:block;font-family:var(--ff-en);font-size:8.5px;letter-spacing:.3em;color:var(--gold-500)} .side .role{margin:0 24px 20px;padding:12px 14px;border:1px solid var(--line-gold);background:rgba(237,216,210,.08); font-size:12.5px;letter-spacing:.1em;color:var(--gold-300);text-align:center} .side nav a{display:flex;align-items:center;gap:12px;padding:12px 24px;font-size:14.5px;color:var(--text-soft); border-left:2px solid transparent;transition:background .3s,color .3s,border-color .3s} .side nav a:hover{background:rgba(237,216,210,.07);color:var(--gold-300)} .side nav a.on{background:rgba(237,216,210,.13);color:var(--gold-300);border-left-color:var(--gold-400)} .side nav a .d{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.6;flex:none} .side .out{margin:22px 24px 0;padding-top:18px;border-top:1px solid var(--line)} .main{padding:34px clamp(20px,3vw,44px) 60px;min-width:0} .app-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap; padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:32px} .app-head h1{font-family:var(--ff-serif);font-size:26px;font-weight:600;letter-spacing:.08em} .app-head .sub{font-size:13.5px;color:var(--muted);margin-top:6px} .app-head .who{text-align:right;font-size:13px;color:var(--muted)} .app-head .who strong{display:block;font-size:15px;color:var(--text);letter-spacing:.06em} .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px} .kpi{border:1px solid var(--line);background:var(--navy-850);padding:22px 24px;position:relative;overflow:hidden; transition:border-color .5s,transform .5s var(--ease)} .kpi:hover{border-color:var(--line-gold);transform:translateY(-4px)} .kpi .lb{font-family:var(--ff-en);font-size:10.5px;letter-spacing:.2em;color:var(--gold-600);margin-bottom:10px} .kpi .v{font-family:var(--ff-en);font-weight:200;font-size:34px;line-height:1.1;color:var(--gold-300)} .kpi .v small{font-size:14px;margin-left:4px;color:var(--gold-500)} .kpi .d{font-size:12.5px;color:var(--muted);margin-top:8px} .kpi .d .up{color:#5FD38A}.kpi .d .dn{color:#E08A7A} .panels{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;margin-bottom:24px} .panel{border:1px solid var(--line);background:var(--navy-850)} .panel-h{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line)} .panel-h h2{font-family:var(--ff-serif);font-size:17px;font-weight:600;letter-spacing:.07em} .panel-h a{font-size:12.5px;color:var(--gold-400);letter-spacing:.08em} .panel-b{padding:22px 24px} .dtbl{width:100%;border-collapse:collapse;font-size:14px} .dtbl th{text-align:left;padding:10px 12px;font-size:11.5px;letter-spacing:.14em;color:var(--gold-600); border-bottom:1px solid var(--line);font-weight:500;white-space:nowrap} .dtbl td{padding:13px 12px;border-bottom:1px solid rgba(255,255,255,.05);color:var(--text-soft);white-space:nowrap} .dtbl tr:hover td{background:rgba(237,216,210,.05)} .pill{display:inline-block;padding:3px 11px;font-size:11.5px;letter-spacing:.08em;border:1px solid var(--line-gold);color:var(--gold-300)} .pill.ok{border-color:rgba(95,211,138,.5);color:#5FD38A} .pill.wait{border-color:rgba(224,138,122,.5);color:#E08A7A} /* 簡易バーチャート */ .chart{display:flex;align-items:flex-end;gap:10px;height:190px;padding-top:10px} .chart .bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;height:100%} .chart .bar i{width:100%;background:linear-gradient(180deg,var(--gold-400),rgba(237,216,210,.18));display:block; animation:grow 1.1s var(--ease) both;transform-origin:bottom} @keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}} .chart .bar span{font-family:var(--ff-en);font-size:10.5px;letter-spacing:.1em;color:var(--muted)} /* ドーナツ風 */ .donut{width:150px;height:150px;border-radius:50%;margin:6px auto 16px;position:relative; background:conic-gradient(var(--gold-400) 0 68%,rgba(255,255,255,.08) 68% 100%)} .donut::after{content:'';position:absolute;inset:22px;border-radius:50%;background:var(--navy-850)} .donut b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--ff-en);font-weight:300;font-size:26px;color:var(--gold-300);z-index:1} .legend{display:grid;gap:9px;font-size:13px;color:var(--text-soft)} .legend div{display:flex;align-items:center;gap:10px} .legend i{width:10px;height:10px;flex:none} @media (max-width:1180px){ .cards,.cards.c4{grid-template-columns:repeat(2,1fr)} .gallery{grid-template-columns:repeat(3,1fr)} .smap{grid-template-columns:repeat(2,1fr)} .panels{grid-template-columns:1fr} .kpis{grid-template-columns:repeat(2,1fr)} .app-wrap{grid-template-columns:1fr} .side{position:static;height:auto;border-right:none;border-bottom:1px solid var(--line-gold)} .side nav{display:flex;flex-wrap:wrap;gap:2px;padding:0 16px} .side nav a{border-left:none;border-bottom:2px solid transparent;padding:10px 14px} .side nav a.on{border-left-color:transparent;border-bottom-color:var(--gold-400)} } @media (max-width:860px){ .detail,.detail:nth-child(even) .detail-visual{grid-template-columns:1fr;order:0} .cards,.cards.c2,.cards.c4,.smap{grid-template-columns:1fr} .gallery{grid-template-columns:repeat(2,1fr)} .voice{grid-template-columns:1fr} .voice .ph{width:120px} .form .row.two{grid-template-columns:1fr} .tbl th{width:auto;display:block;border-bottom:none;padding-bottom:6px} .tbl td{display:block;padding-top:0} .kpis{grid-template-columns:1fr} .anchors a{flex:1 1 46%} .page-hero .radar{opacity:.28;right:-40%} .day li{grid-template-columns:80px 1fr;gap:16px} } /* ============================================================ はたらくを知る(インタラクティブ・コンテンツ) ============================================================ */ .drop.wide3{min-width:820px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px} .drop .dhead{grid-column:1/-1;padding:8px 16px 6px;font-family:var(--ff-en);font-size:10px; letter-spacing:.22em;color:var(--gold-600);border-bottom:1px solid var(--line);margin-bottom:4px} /* コンテンツ一覧(ハブ) */ .hub{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)} .hub a{position:relative;background:var(--navy-850);padding:34px 30px 32px;overflow:hidden; transition:background .55s var(--ease),transform .55s var(--ease)} .hub a::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .55s; background:linear-gradient(155deg,rgba(237,216,210,.16),transparent 58%)} .hub a::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left; background:linear-gradient(90deg,var(--gold-600),var(--gold-300));transition:transform .55s var(--ease)} .hub a:hover{background:var(--navy-750);z-index:2} .hub a:hover::before{opacity:1} .hub a:hover::after{transform:scaleX(1)} .hub .ico{display:block;width:52px;height:52px;margin-bottom:20px;position:relative;z-index:1;transition:transform .6s var(--ease)} .hub .ico svg{width:100%;height:100%;stroke:var(--gold-400);fill:none;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round} .hub a:hover .ico{transform:translateY(-5px) scale(1.06)} .hub h3{font-family:var(--ff-serif);font-size:19px;font-weight:600;letter-spacing:.06em;margin-bottom:10px;position:relative;z-index:1} .hub p{font-size:14px;color:var(--muted);line-height:1.9;position:relative;z-index:1} .hub .tag{display:inline-block;margin-bottom:14px;font-family:var(--ff-en);font-size:10px;letter-spacing:.2em; padding:4px 11px;border:1px solid var(--line-gold);color:var(--gold-400);position:relative;z-index:1} /* 質問チップ(診断・シミュレーター共通) */ .qset{display:grid;gap:30px} .qbox{border:1px solid var(--line);border-radius:16px;background:var(--navy-850);padding:28px 30px;transition:border-color .5s} .qbox:hover{border-color:var(--line-gold)} .qbox .qt{font-size:16.5px;font-weight:500;letter-spacing:.04em;margin-bottom:18px;display:flex;align-items:center;gap:12px} .qbox .qt i{font-family:var(--ff-en);font-size:12px;letter-spacing:.14em;color:var(--gold-600);font-style:normal} .chips{display:flex;flex-wrap:wrap;gap:10px} .chips input{position:absolute;opacity:0;width:0;height:0} .chips label{display:inline-block;padding:13px 24px;border:1px solid var(--line);font-size:15px;letter-spacing:.04em; color:var(--text-soft);cursor:pointer;transition:all .35s var(--ease);user-select:none} .chips label:hover{border-color:var(--gold-600);color:var(--gold-300)} .chips input:checked + label{background:linear-gradient(120deg,var(--gold-600),var(--gold-400)); border-color:transparent;color:var(--navy-900);font-weight:700;box-shadow:0 10px 26px -12px rgba(237,216,210,.8)} /* 結果パネル */ .result{border:1px solid var(--line-gold);background:linear-gradient(135deg,rgba(30,48,79,.6),rgba(5,8,15,.9)); padding:clamp(30px,4vw,46px);position:relative;overflow:hidden} .result::before{content:'';position:absolute;right:-70px;top:-70px;width:300px;height:300px;border-radius:50%;border:1px solid var(--line-gold)} .result .rl{font-family:var(--ff-en);font-size:11px;letter-spacing:.26em;color:var(--gold-500);margin-bottom:16px} .result .big{font-family:var(--ff-en);font-weight:200;line-height:1; font-size:clamp(46px,7vw,84px);background:linear-gradient(150deg,var(--gold-300),var(--gold-600)); -webkit-background-clip:text;background-clip:text;color:transparent} .result .big small{font-size:.3em;letter-spacing:.06em;margin-left:8px;-webkit-text-fill-color:var(--gold-500)} .result .sub{margin-top:12px;color:var(--text-soft);font-size:15px} .res-2col{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:end;position:relative;z-index:1} .res-2col .mid{font-family:var(--ff-en);font-weight:200;font-size:clamp(30px,3.6vw,44px);color:var(--gold-300);line-height:1} .res-2col .mid small{font-size:.34em;color:var(--gold-500);margin-left:6px} /* 内訳バー */ .stack{display:flex;height:16px;margin:26px 0 16px;border:1px solid var(--line-gold);position:relative;z-index:1;overflow:hidden} .stack i{display:block;transition:width .9s var(--ease)} .stack .s1{background:linear-gradient(180deg,var(--gold-300),var(--gold-500))} .stack .s2{background:rgba(237,216,210,.6)} .stack .s3{background:rgba(237,216,210,.34)} .stack .s4{background:rgba(255,255,255,.16)} .stack-legend{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:13px;color:var(--text-soft);position:relative;z-index:1} .stack-legend div{display:flex;align-items:center;gap:9px} .stack-legend em{font-style:normal;color:var(--muted);margin-left:4px} .stack-legend i{width:12px;height:12px;flex:none} /* ロードマップ */ .career-road{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:14px} .career-road .rs{position:relative;padding:0 14px;text-align:center} .career-road .rs:not(:last-child)::before{content:'';position:absolute;top:26px;left:50%;width:100%;height:1px; background:linear-gradient(90deg,var(--gold-600),var(--line-gold))} .career-road .dot{position:relative;z-index:1;width:54px;height:54px;margin:0 auto 20px;display:grid;place-items:center;border-radius:50%; background:var(--navy-900);border:1px solid var(--gold-500);font-family:var(--ff-en);font-size:15px;color:var(--gold-300); transition:all .5s var(--ease)} .career-road .rs:hover .dot{background:var(--gold-500);color:var(--navy-900);transform:scale(1.1);box-shadow:0 0 30px -6px rgba(237,216,210,.7)} .career-road h4{font-family:var(--ff-serif);font-size:16px;font-weight:600;margin-bottom:8px;letter-spacing:.05em} .career-road .amt{font-family:var(--ff-en);font-size:20px;color:var(--gold-300);margin-bottom:8px} .career-road p{font-size:13px;color:var(--muted);line-height:1.85} /* クイズ */ .quiz{border:1px solid var(--line-gold);background:var(--navy-850);position:relative;overflow:hidden} .quiz-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 28px;border-bottom:1px solid var(--line)} .quiz-head .n{font-family:var(--ff-en);font-size:13px;letter-spacing:.16em;color:var(--gold-500)} .quiz-head .sc{font-family:var(--ff-en);font-size:13px;letter-spacing:.14em;color:var(--text-soft)} .qprog{height:3px;background:rgba(255,255,255,.07)} .qprog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-600),var(--gold-300));transition:width .5s var(--ease)} .quiz-body{padding:clamp(28px,4vw,44px)} .quiz-q{font-family:var(--ff-serif);font-size:clamp(19px,2.4vw,25px);font-weight:600;line-height:1.7;letter-spacing:.04em;margin-bottom:28px} .quiz-opts{display:grid;gap:12px} .qopt{display:flex;align-items:center;gap:16px;padding:18px 22px;border:1px solid var(--line);background:rgba(255,255,255,.02); text-align:left;font-size:16px;color:var(--text-soft);cursor:pointer;transition:all .35s var(--ease);width:100%} .qopt .mk{width:30px;height:30px;flex:none;display:grid;place-items:center;border:1px solid var(--line-gold);border-radius:50%; font-family:var(--ff-en);font-size:13px;color:var(--gold-400);transition:all .35s} .qopt:hover:not(:disabled){border-color:var(--gold-500);background:rgba(237,216,210,.08);color:var(--text);transform:translateX(5px)} .qopt.correct{border-color:#5FD38A;background:rgba(95,211,138,.12);color:#DFF6E7} .qopt.correct .mk{border-color:#5FD38A;color:#5FD38A} .qopt.wrong{border-color:#E08A7A;background:rgba(224,138,122,.1);color:#F6DCD7} .qopt.wrong .mk{border-color:#E08A7A;color:#E08A7A} .qopt:disabled{cursor:default} .qfb{margin-top:24px;padding:22px 24px;border-left:2px solid var(--gold-500);background:rgba(237,216,210,.07); font-size:15px;color:var(--text-soft);line-height:1.95;display:none} .qfb.show{display:block;animation:fadeUp .5s var(--ease)} .qfb b{color:var(--gold-300);display:block;margin-bottom:6px;font-size:15px;letter-spacing:.06em} .quiz-foot{padding:0 clamp(28px,4vw,44px) clamp(28px,4vw,44px);display:flex;justify-content:flex-end;gap:14px} .quiz-final{text-align:center;padding:clamp(34px,5vw,60px)} .quiz-final .sc{font-family:var(--ff-en);font-weight:200;font-size:clamp(50px,8vw,90px);line-height:1; background:linear-gradient(150deg,var(--gold-300),var(--gold-600));-webkit-background-clip:text;background-clip:text;color:transparent} .quiz-final .sc small{font-size:.3em;-webkit-text-fill-color:var(--gold-500)} .quiz-final h3{font-family:var(--ff-serif);font-size:clamp(20px,2.6vw,28px);font-weight:600;margin:20px 0 14px;letter-spacing:.06em} .quiz-final p{color:var(--text-soft);max-width:52ch;margin:0 auto 30px} .mode-tabs{display:flex;gap:2px;background:var(--line);border:1px solid var(--line);margin-bottom:30px} .mode-tabs button{flex:1;padding:17px 14px;background:var(--navy-850);font-size:15px;letter-spacing:.05em;color:var(--muted); transition:all .4s var(--ease)} .mode-tabs button.on{background:linear-gradient(120deg,var(--gold-600),var(--gold-400));color:var(--navy-900);font-weight:700} /* イラスト(仕事紹介) */ .illust{border:none;background:transparent; padding:0;position:relative;overflow:hidden} .illust::before{content:none} .illust svg{width:100%;height:auto;display:block;position:relative;z-index:1} .sec-ink .gd-step .pfig.pfig{background:transparent!important;color:var(--td)!important; border-color:transparent!important;padding:0!important} .gd-step{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,50px);align-items:center;margin-bottom:26px} .gd-step:nth-child(even) .illust{order:2} .gd-step .tx .k{font-family:var(--ff-en);font-size:11px;letter-spacing:.24em;color:var(--gold-600);margin-bottom:12px} .gd-step .tx h3{font-family:var(--ff-serif);font-size:clamp(20px,2.5vw,26px);font-weight:600;letter-spacing:.06em;margin-bottom:14px} .gd-step .tx p{color:var(--text-soft);font-size:15.5px} /* 合図アニメ */ .signal{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(24px,4vw,50px);align-items:center} .sig-tabs{display:grid;gap:10px} .sig-tabs button{text-align:left;padding:20px 24px;border:1px solid var(--line);background:var(--navy-850); transition:all .4s var(--ease)} .sig-tabs button strong{display:block;font-family:var(--ff-serif);font-size:18px;font-weight:600;margin-bottom:6px} .sig-tabs button span{font-size:14px;color:var(--muted)} .sig-tabs button.on{border-color:var(--gold-500);background:rgba(237,216,210,.1)} .sig-tabs button.on strong{color:var(--gold-300)} .arm{transform-origin:var(--ox,0px) var(--oy,0px)} .sig-stop .arm-r{animation:armStop 2.4s var(--ease) infinite} .sig-slow .arm-r{animation:armSlow 1.4s var(--ease) infinite} .sig-go .arm-r{animation:armGo 1.6s var(--ease) infinite} @keyframes armStop{0%,100%{transform:rotate(4deg)}18%,82%{transform:rotate(-92deg)}} @keyframes armSlow{0%,100%{transform:rotate(28deg)}50%{transform:rotate(2deg)}} @keyframes armGo{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(-88deg)}} .guardsvg .arm-r{transform-origin:136px 96px} .sig-stop .flag,.sig-slow .flag{fill:#D64B3C} .sig-go .flag{fill:#F2F5FA} .sig-go .arm-r{animation-duration:1.2s} .tool{display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:center;border:1px solid var(--line); background:var(--navy-850);padding:22px 24px;transition:border-color .5s,transform .5s var(--ease)} .tool:hover{border-color:var(--line-gold);transform:translateY(-4px)} .tool svg{width:100%;height:auto;stroke:var(--gold-400);fill:none;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round} .tool strong{display:block;font-family:var(--ff-serif);font-size:16.5px;font-weight:600;margin-bottom:4px} .tool span{font-size:13.5px;color:var(--muted)} /* 道路アニメ */ .road-anim{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--navy-800)} .road-anim svg{width:100%;height:auto;display:block} /* 車:停止線で待機→合図が変わったら発車、を交互に繰り返す */ .ra-car{animation:raCarLeft 7s linear infinite} .ra-car2{animation:raCarRight 7s linear infinite} @keyframes raCarLeft{ 0%,48%{transform:translateX(90px);opacity:1} 50%{transform:translateX(90px);opacity:1} 90%{transform:translateX(750px);opacity:1} 94%{transform:translateX(750px);opacity:0} 94.1%{transform:translateX(90px);opacity:0} 100%{transform:translateX(90px);opacity:1} } @keyframes raCarRight{ 0%{transform:translateX(600px);opacity:1} 2%{transform:translateX(600px);opacity:1} 40%{transform:translateX(-60px);opacity:1} 44%{transform:translateX(-60px);opacity:0} 44.1%{transform:translateX(600px);opacity:0} 50%,100%{transform:translateX(600px);opacity:1} } /* 誘導員の合図:停止と進めを同じ7秒サイクルでクロスフェード */ .ra-lstop{animation:raFlagOff 7s linear infinite} .ra-lgo{animation:raFlagOn 7s linear infinite} .ra-rgo{animation:raFlagOff 7s linear infinite} .ra-rstop{animation:raFlagOn 7s linear infinite} @keyframes raFlagOff{0%,46%{opacity:1}50%,100%{opacity:0}} @keyframes raFlagOn{0%,46%{opacity:0}50%,100%{opacity:1}} @media (prefers-reduced-motion:reduce){ .ra-car,.ra-car2,.ra-lstop,.ra-lgo,.ra-rgo,.ra-rstop{animation:none!important} .ra-lstop,.ra-rgo{opacity:1} .ra-lgo,.ra-rstop{opacity:0} } /* 撤収シーン:足元のコーンを持ち上げて、積み重ねた山まで運ぶ */ .pack-cone{animation:conePack 2.6s ease-in-out infinite} @keyframes conePack{ 0%,14%{transform:translate(0,0) scale(1);opacity:1} 48%{transform:translate(88px,-16px) scale(.92);opacity:1} 60%{transform:translate(126px,10px) scale(.68);opacity:0} 60.1%{transform:translate(0,0) scale(1);opacity:0} 86%,100%{transform:translate(0,0) scale(1);opacity:1} } @media (prefers-reduced-motion:reduce){.pack-cone{animation:none!important}} /* 診断結果カード */ .diag-res{display:none} .diag-res.show{display:block;animation:fadeUp .7s var(--ease)} .type-card{border:1px solid var(--line-gold);background:linear-gradient(135deg,rgba(30,48,79,.65),rgba(5,8,15,.9)); padding:clamp(32px,4.5vw,54px);text-align:center;position:relative;overflow:hidden} .type-card .tico{width:88px;height:88px;margin:0 auto 22px} .type-card .tico svg{width:100%;height:100%;stroke:var(--gold-400);fill:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round} .type-card .tl{font-family:var(--ff-en);font-size:11px;letter-spacing:.28em;color:var(--gold-500)} .type-card h3{font-family:var(--ff-serif);font-size:clamp(24px,3.4vw,38px);font-weight:600;letter-spacing:.08em;margin:14px 0 18px} .type-card p{color:var(--text-soft);max-width:56ch;margin:0 auto} .type-tags{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-top:24px} .type-tags span{font-size:13px;padding:7px 16px;border:1px solid var(--line-gold);color:var(--gold-300)} /* 数字インフォ */ .figs{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--line);border:1px solid var(--line-gold)} .fig{background:rgba(8,13,26,.8);padding:36px 22px;text-align:center} .fig .v{font-family:var(--ff-en);font-weight:200;font-size:clamp(34px,4vw,52px);line-height:1;color:var(--gold-300)} .fig .v small{font-size:.34em;color:var(--gold-500);margin-left:4px} .fig .c{margin-top:12px;font-size:13.5px;color:var(--text-soft);letter-spacing:.08em} @media (max-width:1180px){ .hub{grid-template-columns:repeat(2,1fr)} .career-road{grid-template-columns:repeat(3,1fr);row-gap:44px} .career-road .rs:nth-child(3)::before{display:none} .figs{grid-template-columns:repeat(2,1fr)} .drop.wide3{min-width:600px;grid-template-columns:repeat(2,1fr)} } @media (max-width:860px){ .hub,.career-road,.figs{grid-template-columns:1fr} .career-road .rs::before{display:none} .res-2col,.gd-step,.signal{grid-template-columns:1fr} .gd-step:nth-child(even) .illust{order:0} .quiz-foot{justify-content:stretch} .quiz-foot .btn{width:100%} .mode-tabs{flex-direction:column} } @media (max-width:860px){ .qe-grid{grid-template-columns:1fr!important} .access-grid{grid-template-columns:1fr!important} } /* ============================================================ 新デザイン 上書き層(V4 鉛筆・スモークブルー) ここから下が、暗いままにしておく部分と、明るい紙面に合わせる調整です ============================================================ */ /* --- 紙の下地 --- */ body::before{ background-image: linear-gradient(rgba(40,65,85,.045) 1px,transparent 1px), linear-gradient(90deg,rgba(40,65,85,.045) 1px,transparent 1px); background-size:74px 74px; mask-image:radial-gradient(ellipse 92% 76% at 50% 26%,#000 26%,transparent 100%); } body::after{ content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.45; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.055'/%3E%3C/svg%3E"); } ::selection{background:var(--ink-700);color:#fff} /* --- ボタン --- */ .btn-gold{background:var(--ink-700);color:var(--sand);font-weight:600;border-color:var(--ink-700)} .btn-gold:hover{background:var(--ink-800);box-shadow:0 18px 40px -22px rgba(19,32,41,.55)} .btn-line{color:var(--gold-400)} .btn-line:hover{color:#fff} .ripple{background:rgba(237,216,210,.5)} /* --- ヘッダー:常に暗い面の上に乗る --- */ .header{color:var(--td)} .header.scrolled{background:rgba(19,32,41,.90);border-bottom-color:rgba(237,216,210,.22)} .header .logo-txt strong{color:var(--sand)} .header .logo-txt span{color:var(--td)} .header .gnav .caret{color:var(--sand)} .header .gnav>li>a{color:var(--td)} .header .gnav>li:hover>a{color:var(--sand)} .header .gnav>li>a::after{background:var(--sand)} .header .caret{border-color:var(--sand)} .header .tel-block .lb{color:var(--td-sub)} .header .tel-block .no{color:var(--sand)} .btn-login{color:var(--sand);border-color:rgba(237,216,210,.38)} .btn-login::before{background:var(--sand)} .btn-login:hover{color:var(--ink-900);border-color:var(--sand)} .burger i{background:var(--sand)} .progress{background:linear-gradient(90deg,var(--ink-700),var(--sand))} .drop{background:rgba(19,32,41,.96);border-color:rgba(237,216,210,.22)} .drop a{color:var(--td-sub)} .drop a:hover{color:var(--sand);background:rgba(237,216,210,.08)} .drop a::before{background:var(--sand)} .mnav{background:rgba(19,32,41,.985);color:var(--td)} .mnav details{border-bottom-color:rgba(237,216,210,.16)} .mnav summary::after{color:var(--sand)} .mnav a{color:var(--td-sub)} .mnav .m-single{color:var(--td)} .mnav .btn-line{color:var(--sand);border-color:rgba(237,216,210,.45)} /* --- ヒーロー/ページ見出し:暗い帯 --- */ .hero,.page-hero,.login-page{background:var(--ink-900);color:var(--td)} .hero .hero-h1,.page-hero h1{color:var(--td)} .hero .hero-lead,.page-hero p{color:var(--td-sub)} .hero .hero-side,.hero .scroll-cue,.hero-facts .t{color:rgba(185,199,207,.75)} .hero-tag{color:var(--sand);border-color:rgba(237,216,210,.34);background:rgba(237,216,210,.07)} .hero-h1 em{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--sand)} .hero-facts div{border-left-color:rgba(237,216,210,.28)} .hero-facts .n{color:var(--sand)} .hero .btn-line,.page-hero .btn-line{color:var(--sand);border-color:rgba(237,216,210,.5)} .hero .btn-line:hover,.page-hero .btn-line:hover{color:var(--ink-900)} .hero .btn-line::before,.page-hero .btn-line::before{background:var(--sand)} .scroll-cue::after{background:linear-gradient(180deg,var(--sand),transparent)} .scroll-cue i::before{background:var(--sand)} .page-hero .crumb,.page-hero .crumb a{color:rgba(185,199,207,.8)} .page-hero .en{color:var(--sand)} .blip{background:var(--sand)} /* --- フッター --- */ .footer{background:var(--ink-900);color:var(--td-sub);border-top:none} .footer h5{color:var(--sand)} .footer a{color:var(--td-sub)} .footer a:hover{color:var(--sand)} .footer .logo-txt strong{color:var(--sand)} .footer .logo-txt span{color:var(--td)} .footer .f-brand p{color:rgba(185,199,207,.72)} .footer .cr,.footer .f-bottom{color:rgba(185,199,207,.6);border-top-color:rgba(237,216,210,.14)} .sticky-cta .t{background:var(--ink-800);color:var(--td)} .sticky-cta .m{background:var(--sand);color:var(--ink-900)} /* --- 明るい紙面に合わせる調整 --- */ .tbl th{background:rgba(40,65,85,.045);color:var(--gold-400)} .dtbl td{border-bottom-color:rgba(19,32,41,.09)} .form input,.form select,.form textarea{background:#fff;border-color:var(--line);color:var(--text)} .qprog{background:rgba(19,32,41,.09)} .qopt{background:#fff} .qopt:hover{background:var(--navy-800)} .stack .s4{background:rgba(40,65,85,.18)} .donut{background:conic-gradient(var(--gold-400) 0 68%,rgba(19,32,41,.10) 68% 100%)} .gal span,.case-img .tagline{color:var(--ink-800);text-shadow:0 1px 10px rgba(244,247,247,.9)} .case-img::before{display:none} .case-img .kind{background:var(--ink-700);color:var(--sand)} .card,.svc,.cta-card,.panel,.qbox,.type-card,.voice,.box,.login-card,.news-list li{background:#fff} .chart,.smap{background:#fff} /* ============================================================ トップページの動き(V4より移植) 1 信号機ローディング/2 道路と車のライト/3 LED矢印板 4 無線ログ/5 地図の点灯/6 タイムライン/7 コーンの揺れ ============================================================ */ /* 1) 信号機ローディング 青 → 黄 → 赤 → 青(青で停止) */ #loader{position:fixed;inset:0;z-index:9999;background:var(--ink-900); display:grid;place-items:center;transition:opacity .6s var(--ease),visibility .6s} #loader.done{opacity:0;visibility:hidden} .loader-inner{display:grid;justify-items:center} .signal-box{display:flex;flex-direction:column;gap:14px;padding:20px 16px;border-radius:14px; background:rgba(255,255,255,.05);border:1px solid rgba(237,216,210,.22)} .signal-box i{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.10); transition:background .25s linear,box-shadow .25s linear;display:block} .signal-box.s-red i:nth-child(1){background:#D45B4C;box-shadow:0 0 26px 4px rgba(212,91,76,.55)} .signal-box.s-yellow i:nth-child(2){background:#E0B453;box-shadow:0 0 26px 4px rgba(224,180,83,.55)} .signal-box.s-green i:nth-child(3){background:#4FA98A;box-shadow:0 0 26px 4px rgba(79,169,138,.55)} #loader .lb{margin-top:22px;font-family:var(--ff-en);font-size:11px;letter-spacing:.34em; color:var(--sand);text-align:center} /* 2) 道路と、手前へ流れる車のライト */ .road{position:absolute;left:0;bottom:0;width:100%;height:46%;overflow:hidden;pointer-events:none;z-index:1; -webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 100%),linear-gradient(90deg,transparent 4%,#000 44%); mask-image:linear-gradient(180deg,transparent,#000 30%,#000 100%),linear-gradient(90deg,transparent 4%,#000 44%); mask-composite:intersect;-webkit-mask-composite:source-in} .road svg{position:absolute;inset:0;width:100%;height:100%} .road .lane{stroke:rgba(210,220,220,.22);stroke-width:1.2;fill:none} .road .edge{stroke:rgba(210,220,220,.42);stroke-width:1.8;fill:none} .road .dash{stroke:rgba(237,216,210,.52);stroke-width:3;stroke-dasharray:20 30;fill:none; animation:dashmove 5s linear infinite} .road .tarmac{fill:rgba(255,255,255,.03)} @keyframes dashmove{to{stroke-dashoffset:-84}} .car{position:absolute;left:50%;bottom:0;width:3px;height:3px;border-radius:50%; background:rgba(255,255,255,.9);box-shadow:0 0 12px 4px rgba(237,216,210,.55); transform-origin:center;animation:drive 9s linear infinite} .car.b{background:rgba(237,216,210,.85);box-shadow:0 0 10px 3px rgba(217,185,175,.5)} @keyframes drive{ 0%{transform:translate(var(--dx),var(--dy)) scale(.25);opacity:0} 12%{opacity:.9} 85%{opacity:.85} 100%{transform:translate(0,0) scale(2.6);opacity:0} } /* 3) LED矢印板 */ .arrowband{background:var(--ink-900);padding:14px 0;overflow:hidden; border-block:1px solid rgba(237,216,210,.16)} .arrows{display:flex;gap:10px;justify-content:center;align-items:center} .arrows span{width:16px;height:16px;flex:none;opacity:.18;transition:opacity .1s linear} .arrows span svg{width:100%;height:100%;fill:var(--sand)} .arrows span.lit{opacity:1;filter:drop-shadow(0 0 6px rgba(237,216,210,.6))} .arrowband .cap{text-align:center;margin-top:8px;font-family:var(--ff-en);font-size:10px; letter-spacing:.3em;color:rgba(237,216,210,.55)} /* 4) 無線ログ */ .radio-wrap{display:grid;grid-template-columns:1fr 420px;gap:clamp(28px,5vw,60px);align-items:center} .radio{background:var(--ink-900);border:1px solid rgba(237,216,210,.22);overflow:hidden} .radio-h{display:flex;justify-content:space-between;align-items:center;padding:14px 18px; border-bottom:1px solid rgba(237,216,210,.16);font-family:var(--ff-en);font-size:10.5px; letter-spacing:.2em;color:var(--sand)} .radio-h .dot{display:flex;align-items:center;gap:8px} .radio-h .dot i{width:7px;height:7px;border-radius:50%;background:#5FD38A;animation:live 2.6s infinite} .radio-b{height:246px;overflow:hidden;padding:14px 18px;display:flex;flex-direction:column; justify-content:flex-end;gap:9px} .radio-b .ln{display:grid;grid-template-columns:56px 1fr;gap:12px;font-size:13.5px;align-items:baseline; animation:lineIn .5s var(--ease)} .radio-b .ln .t{font-family:var(--ff-en);font-size:12px;color:var(--sand);letter-spacing:.06em} .radio-b .ln .m{color:var(--td-sub)} .radio-b .ln .m b{color:var(--td);font-weight:500} @keyframes lineIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}} .radio-f{padding:10px 18px;border-top:1px solid rgba(237,216,210,.12); font-size:11.5px;color:rgba(185,199,207,.7)} /* 5) 対応エリアの地図(順に点灯) */ .map-wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,60px);align-items:center} .areamap{position:relative;border:1px solid rgba(40,65,85,.14);background:#fff;padding:18px} .areamap svg{width:100%;height:auto;display:block} .areamap .st{stroke:rgba(89,117,148,.28);fill:none;stroke-width:1.4} .areamap .st2{stroke:rgba(89,117,148,.16);fill:none;stroke-width:1} .areamap .blk{fill:rgba(210,220,220,.5)} .areamap .pt{fill:var(--gold-500);opacity:.25;transition:opacity .4s,fill .4s} .areamap .pt.on{opacity:1;fill:var(--ink-700)} .areamap .halo{fill:none;stroke:var(--ink-700);stroke-width:1.5;opacity:0} .areamap .halo.on{animation:halo 1.4s var(--ease)} @keyframes halo{0%{r:4;opacity:.8}100%{r:26;opacity:0}} .map-label{position:absolute;left:18px;bottom:14px;font-family:var(--ff-en);font-size:10px; letter-spacing:.22em;color:var(--gold-500)} /* 6) 一日の流れ(スクロールで線が伸びる) */ .tl{position:relative;margin-top:34px;padding-left:32px} .tl::before{content:'';position:absolute;left:-25px;top:6px;bottom:6px;width:1px;background:rgba(40,65,85,.2)} .tl .fillbar{position:absolute;left:-25px;top:6px;width:1px;height:0;background:var(--gold-500); transition:height .18s linear} .tl li{position:relative;padding-bottom:26px} .tl li:last-child{padding-bottom:0} .tl li::before{content:'';position:absolute;left:-32px;top:9px;width:15px;height:15px;border-radius:50%; background:var(--navy-900);border:1px solid rgba(40,65,85,.3);transition:all .5s var(--ease)} .tl li.on::before{background:var(--gold-500);border-color:var(--gold-500);box-shadow:0 0 0 5px rgba(89,117,148,.16)} .tl .time{font-family:var(--ff-en);font-size:17px;color:var(--gold-500);letter-spacing:.06em} .tl h4{font-family:var(--ff-serif);font-size:17px;font-weight:600;margin:2px 0 6px;letter-spacing:.04em} .tl p{font-size:14.5px;color:var(--text-soft)} /* 7) コーン(軽く揺れる) */ .cones{display:flex;gap:22px;align-items:flex-end;justify-content:center;margin-top:8px} .cone{width:56px;height:auto;transform-origin:50% 100%} .cone svg{width:100%;height:auto} .cone.sway{animation:sway 3.4s var(--ease) infinite} .cone:nth-child(2).sway{animation-delay:.35s} .cone:nth-child(3).sway{animation-delay:.7s} .cone:nth-child(4).sway{animation-delay:1.05s} @keyframes sway{0%,100%{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}} @media (max-width:900px){ .radio-wrap,.map-wrap{grid-template-columns:1fr} .radio-b{height:200px} } @media (prefers-reduced-motion:reduce){ .road .dash,.car,.cone.sway{animation:none!important} #loader{display:none} } /* ============================================================ 読みやすさの調整(明るい紙面での文字色・残っていた濃い箱) ============================================================ */ /* 補助テキストが薄すぎたので濃くする */ :root{ --muted:#5A6C76; --gold-600:#6E88A3; } /* 明るい面に残っていた濃い箱を、白い面に */ .rec-point{background:#fff} .login-card{background:#fff} .result{background:linear-gradient(135deg,var(--navy-750),var(--navy-800))} .type-card{background:linear-gradient(135deg,var(--navy-750),var(--navy-800))} .fig{background:#fff} .cta-card,.qbox{background:#fff} .login-page .login-card h1,.login-card h1{color:var(--text)} .login-page{background:var(--ink-900)} .login-band h1,.login-band .en{color:var(--td)} /* 状態を示す色(白地でも読める濃さに) */ .up,.pill.ok,.ok{color:#2E7D5B} .dn,.pill.wait,.wait{color:#B04A38} .tbl th,.dtbl th,.toolbar label,.mgroup{color:#4E657C} /* 小さい注記が薄くなりすぎないように */ .note,.cap{color:var(--muted)} .sec-lead,.p,.detail-body p,.card p,.svc p{color:#43555F} .kpi .d .up{color:#2E7D5B} .kpi .d .dn{color:#B04A38} /* 暗い面の上の文字は、明るい側の調整に巻き込まれないようにする */ .header .drop a,.drop a{color:var(--td-sub)} .drop a:hover{color:var(--sand)} .hero small,.hero .cap,.hero .note, .page-hero small,.page-hero .cap, .footer small,.footer .cap,.footer .cr, .band-dark small,.band-dark .cap,#radio small,#radio .cap{color:var(--td-sub)} .hero-facts .t,.hero-facts small{color:rgba(185,199,207,.85)} .mnav details ul a{color:var(--td-sub);border-left-color:rgba(237,216,210,.22)} .mnav summary{color:var(--td)} .footer .f-map a,.footer ul a{color:var(--td-sub)} .footer .f-map a:hover,.footer ul a:hover{color:var(--sand)} /* ============================================================ 4色の帯(V4のリズムを全ページへ) 白 #fff / 淡いブルーグレー #d2dcdc / サンド #edd8d2 / 濃紺 #284155 ============================================================ */ .band-white{background:#fff} .band-light{background:var(--navy-700)} .band-sand{background:var(--sand)} .band-deep{background:var(--ink-700);color:var(--td)} /* 淡い帯・サンドの帯の上では、カードを白く浮かせる */ .band-light .card,.band-light .svc,.band-light .cta-card,.band-light .panel, .band-light .qbox,.band-light .type-card,.band-light .voice,.band-light .box, .band-light .news-list li,.band-light .stat,.band-light .rec-point,.band-light .tool, .band-light .case,.band-light .pcl-card,.band-light .hub li, .band-sand .card,.band-sand .svc,.band-sand .cta-card,.band-sand .panel, .band-sand .qbox,.band-sand .box,.band-sand .stat,.band-sand .tool, .band-sand .case,.band-sand .hub li{background:#fff} .band-light .form input,.band-light .form select,.band-light .form textarea, .band-sand .form input,.band-sand .form select,.band-sand .form textarea{background:#fff} .band-light .tbl,.band-sand .tbl{background:#fff} .band-light .detail-visual,.band-sand .detail-visual{background:rgba(255,255,255,.55)} .band-light .case-img.pfig::after{background:linear-gradient(transparent,rgba(228,236,236,.94) 72%)} .band-sand .case-img.pfig::after{background:linear-gradient(transparent,rgba(245,229,224,.94) 72%)} /* 帯どうしの継ぎ目に線は要らない */ /* 濃紺の帯 */ .band-deep .sec-title,.band-deep h2,.band-deep h3,.band-deep h4{color:var(--td)} .band-deep .sec-lead,.band-deep p,.band-deep li{color:var(--td-sub)} .band-deep .sec-label{color:var(--sand)} .band-deep .card,.band-deep .box{background:rgba(255,255,255,.06);border-color:rgba(237,216,210,.2)} /* 淡い帯・サンドの帯の上では、補助テキストをもう一段濃く */ .band-light p,.band-light li,.band-light span,.band-light td,.band-sand p,.band-sand li,.band-sand span,.band-sand td{color:#3E515C} .band-light .sec-lead,.band-sand .sec-lead,.band-light .cap,.band-sand .cap{color:#43555F} .band-light .sec-label,.band-sand .sec-label{color:#4A6480} /* 帯どうしの境目に線を出さない */ .section + .section{border-top:none} .rule{background:linear-gradient(90deg,transparent,rgba(40,65,85,.14) 30%,rgba(40,65,85,.14) 70%,transparent)} /* ============================================================ 帯の境目をなくす(上下を隣の色へ溶かす) ============================================================ */ .hero,.page-hero{position:relative} .hero .hero-inner,.page-hero .wrap{position:relative;z-index:5} .hero .hero-guard{z-index:5} .arrowband{border-block:none;position:relative} .sticky-cta{box-shadow:0 -18px 40px -24px rgba(19,32,41,.5)} /* 社員ログインの帯(濃紺のパネル) */ .login-band{background:linear-gradient(120deg,var(--ink-700),var(--ink-900));border-color:rgba(237,216,210,.24)} .login-band h1,.login-band h2,.login-band h3,.login-band .en,.login-band strong{color:var(--td)} .login-band p,.login-band span,.login-band li{color:var(--td-sub)} .login-band .role,.login-band .login-roles a{color:var(--sand);border-color:rgba(237,216,210,.35)} .login-band .role:hover,.login-band .login-roles a:hover{background:rgba(237,216,210,.12);color:var(--sand)} .login-band .btn-gold{background:var(--sand);color:var(--ink-900);border-color:var(--sand)} .login-band .btn-gold:hover{background:#F6E7E2} /* ============================================================ ずらして重なる色面(横一直線の境目をつくらない) ============================================================ */ body{background:var(--navy-900)} .section.has-blk{position:relative;background:none!important} .section.has-blk > .wrap,.section.has-blk > div{position:relative;z-index:1} .blk{position:absolute;z-index:0;pointer-events:none;display:block} /* 左に大きく寄せた淡いブルーグレー(上へはみ出す) */ .blk-a{left:0;width:min(66%,900px);top:-8%;height:84%;background:var(--navy-700)} .blk-a::after{content:'';position:absolute;right:-32px;bottom:-40px;width:min(38%,300px);height:46%; background:rgba(255,255,255,.72)} /* 右に寄せた白い面+サンドの角枠 */ .blk-b{right:0;width:min(58%,780px);top:10%;height:92%;background:#fff} .blk-b::before{content:'';position:absolute;left:-34px;top:-34px;width:min(46%,220px);height:210px; border-left:2px solid var(--sand-deep);border-top:2px solid var(--sand-deep)} /* 右に寄せたサンド */ .blk-c{right:0;width:min(60%,820px);top:-6%;height:80%;background:var(--sand)} .blk-c::after{content:'';position:absolute;left:-40px;bottom:-56px;width:min(40%,320px);height:52%; background:var(--navy-700)} /* 左に寄せた白 */ .blk-d{left:0;width:min(54%,740px);top:14%;height:82%;background:#fff} .blk-d::after{content:'';position:absolute;right:-46px;top:-52px;width:min(36%,280px);height:44%; background:var(--navy-700)} /* 濃い面は斜めに切る */ .sec-diag{position:relative;background:none!important;color:var(--td)} .sec-diag::before{content:'';position:absolute;inset:-70px 0 -70px 0;z-index:0; background:linear-gradient(115deg,var(--ink-700),var(--ink-900) 62%); clip-path:polygon(0 84px,100% 0,100% calc(100% - 84px),0 100%)} .sec-diag > .wrap,.sec-diag > div{position:relative;z-index:1} /* ヒーローの下端を斜めに抜く */ .hero::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:112px;z-index:4; pointer-events:none;background:var(--navy-900); clip-path:polygon(0 100%,100% 6px,100% 100%)} .page-hero::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:76px;z-index:4; pointer-events:none;background:var(--navy-900); clip-path:polygon(0 100%,100% 4px,100% 100%)} /* フッターの上端も斜めに */ .footer{position:relative;background:var(--ink-900);margin-top:-1px} .footer::before{content:'';position:absolute;left:0;right:0;top:-70px;height:72px; background:var(--ink-900);clip-path:polygon(0 100%,100% 0,100% 100%,0 100%)} .arrowband{position:relative;z-index:2} @media (max-width:860px){ .blk-a,.blk-b,.blk-c,.blk-d{width:88%!important;height:70%!important} .blk-a::after,.blk-b::before,.blk-c::after,.blk-d::after{display:none} } /* 色面がヒーローの上に乗らないようにする */ .hero,.page-hero,.login-page,.arrowband{position:relative;z-index:3} .section.has-blk,.sec-diag{z-index:1} .anchors{position:relative;z-index:3;background:#fff} .anchors + *,.wrap > .anchors{z-index:3} .anchor-wrap{z-index:4} /* ============================================================ 崩し(MORI のポスターを参考に) 半透明の面/細い罫線とドット/またぐ枠線/手描きの線 ============================================================ */ /* 1) 面を半透明にして、重なりを見せる */ .blk-a{background:rgba(210,220,220,.82)} .blk-a::after{background:rgba(255,255,255,.62)} .blk-b{background:rgba(255,255,255,.86)} .blk-c{background:rgba(237,216,210,.78)} .blk-c::after{background:rgba(210,220,220,.7)} .blk-d{background:rgba(255,255,255,.9)} .blk-d::after{background:rgba(210,220,220,.72)} /* 2) 細い罫線とドット(不揃いに走らせる) */ .net{position:absolute;inset:-40px 0;z-index:0;pointer-events:none;opacity:.9; background-image: linear-gradient(90deg,rgba(40,65,85,.13) 1px,transparent 1px), linear-gradient(90deg,rgba(40,65,85,.08) 1px,transparent 1px), linear-gradient(180deg,rgba(40,65,85,.10) 1px,transparent 1px), radial-gradient(circle at 0 0,rgba(89,117,148,.5) 1.7px,transparent 2px); background-size:27.3% 100%, 9.1% 100%, 100% 37%, 27.3% 37%; background-position:6% 0, 3% 0, 0 12%, 6% 12%} .sec-diag .net{opacity:.5; background-image: linear-gradient(90deg,rgba(237,216,210,.16) 1px,transparent 1px), linear-gradient(180deg,rgba(237,216,210,.12) 1px,transparent 1px), radial-gradient(circle at 0 0,rgba(237,216,210,.5) 1.7px,transparent 2px); background-size:27.3% 100%, 100% 37%, 27.3% 37%; background-position:6% 0, 0 12%, 6% 12%} /* 3) 面をまたぐ細い枠線 */ .oline{position:absolute;z-index:0;pointer-events:none; right:6%;top:-38px;width:min(30%,340px);height:min(52%,300px); border:1px solid rgba(40,65,85,.35)} .oline::after{content:'';position:absolute;left:-46%;bottom:-44px;width:52%;height:46%; border:1px solid rgba(212,91,76,.35)} /* 4) 手描きの線(鉛筆フィルタを流用) */ .scribble{position:absolute;left:2%;top:6%;width:min(26%,300px);height:130px;z-index:0; pointer-events:none;opacity:.5; background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 130'%3E%3Cellipse cx='150' cy='65' rx='140' ry='52' fill='none' stroke='%23597594' stroke-width='1.4'/%3E%3Cellipse cx='150' cy='66' rx='132' ry='46' fill='none' stroke='%23597594' stroke-width='1' opacity='.7'/%3E%3C/svg%3E")} /* 5) 図版を縦の短冊で切ってずらす(MORIの絵の切り方) */ .pfig.sliced{position:relative} .pfig.sliced .pcl-svg{ -webkit-mask-image:linear-gradient(90deg,#000 0 7%,transparent 7% 19%,#000 19% 76%,transparent 76% 89%,#000 89% 100%); mask-image:linear-gradient(90deg,#000 0 7%,transparent 7% 19%,#000 19% 76%,transparent 76% 89%,#000 89% 100%)} .pfig.sliced .pcl-shift{position:absolute;left:0;top:0;width:100%;height:auto; transform:translateY(15px);opacity:.9; -webkit-mask-image:linear-gradient(90deg,transparent 0 7%,#000 7% 19%,transparent 19% 76%,#000 76% 89%,transparent 89% 100%); mask-image:linear-gradient(90deg,transparent 0 7%,#000 7% 19%,transparent 19% 76%,#000 76% 89%,transparent 89% 100%)} /* 6) 図版の上に薄い縦の面を重ねる */ .veil{position:absolute;inset:0;z-index:2;pointer-events:none} .veil i{position:absolute;background:rgba(255,255,255,.34)} .veil i:nth-child(1){left:8%;width:11%;top:-6%;bottom:22%} .veil i:nth-child(2){left:33%;width:9%;top:14%;bottom:-8%} .veil i:nth-child(3){left:58%;width:13%;top:-10%;bottom:34%} .veil i:nth-child(4){left:79%;width:8%;top:26%;bottom:-4%;background:rgba(237,216,210,.34)} .sec-diag .veil i{background:rgba(237,216,210,.14)} @media (max-width:860px){ .oline,.scribble{display:none} .net{opacity:.55} .pfig.sliced .pcl-svg,.pfig.sliced .pcl-shift{-webkit-mask-image:none;mask-image:none} .pfig.sliced .pcl-shift{display:none} } /* ============================================================ 濃い色を主役に戻す(MORI のポスターの比率) 画面の大半が #1B2E3E / #284155、そこへ #d2dcdc と #edd8d2 を差す ============================================================ */ :root{ --paper-deep:#1B2E3E; --paper-mid:#284155; --paper-pale:#d2dcdc; --paper-sand:#edd8d2; } body{background:var(--paper-deep);color:var(--td)} body::before{background-image: linear-gradient(rgba(237,216,210,.05) 1px,transparent 1px), linear-gradient(90deg,rgba(237,216,210,.05) 1px,transparent 1px)} body::after{opacity:.3} /* --- セクションの面(すべて不透明・べた) --- */ .section.sec-ink,.section.sec-mid,.section.sec-pale,.section.sec-sand,.section.sec-white{ position:relative;background:none} .sec-ink::before,.sec-mid::before,.sec-pale::before,.sec-sand::before,.sec-white::before{ content:'';position:absolute;inset:-80px 0;z-index:0} .sec-ink::before{background:var(--paper-deep)} .sec-mid::before{background:var(--paper-mid)} .sec-pale::before{background:var(--paper-pale)} .sec-sand::before{background:var(--paper-sand)} .sec-white::before{background:#fff} .sec-ink > *,.sec-mid > *,.sec-pale > *,.sec-sand > *,.sec-white > *{position:relative;z-index:1} /* 上下を斜めに切る(向きを交互に) */ .cut-a::before{clip-path:polygon(0 80px,100% 0,100% calc(100% - 80px),0 100%)} .cut-b::before{clip-path:polygon(0 0,100% 80px,100% 100%,0 calc(100% - 80px))} .section{margin-block:-40px;padding-block:clamp(112px,11vw,180px)} /* --- 濃い面の上の文字 --- */ .sec-ink,.sec-mid{color:var(--td)} .sec-ink .sec-title,.sec-mid .sec-title,.sec-ink h1,.sec-ink h2,.sec-ink h3,.sec-ink h4,.sec-ink h5, .sec-mid h1,.sec-mid h2,.sec-mid h3,.sec-mid h4,.sec-mid h5{color:var(--td)} .sec-ink .sec-title em,.sec-mid .sec-title em{color:var(--sand)} .sec-ink .sec-label,.sec-mid .sec-label{color:var(--sand)} .sec-ink .sec-label::before,.sec-mid .sec-label::before{background:linear-gradient(90deg,rgba(237,216,210,.3),var(--sand))} .sec-ink p,.sec-ink li,.sec-ink td,.sec-ink span,.sec-ink .sec-lead,.sec-ink .p, .sec-mid p,.sec-mid li,.sec-mid td,.sec-mid span,.sec-mid .sec-lead,.sec-mid .p{color:var(--td-sub)} .sec-ink .card,.sec-ink .svc,.sec-ink .box,.sec-ink .panel,.sec-ink .stat,.sec-ink .tool, .sec-ink .cta-card,.sec-ink .qbox,.sec-ink .voice,.sec-ink .news-list li,.sec-ink .type-card, .sec-ink .rec-point,.sec-ink .hub li,.sec-ink .case,.sec-ink .pcl-card, .sec-mid .card,.sec-mid .svc,.sec-mid .box,.sec-mid .panel,.sec-mid .stat,.sec-mid .tool, .sec-mid .cta-card,.sec-mid .qbox,.sec-mid .voice,.sec-mid .news-list li,.sec-mid .type-card, .sec-mid .rec-point,.sec-mid .hub li,.sec-mid .case,.sec-mid .pcl-card{ background:rgba(255,255,255,.055);border-color:rgba(237,216,210,.18)} .sec-ink .card h4,.sec-mid .card h4,.sec-ink .svc h4,.sec-mid .svc h4{color:var(--td)} .sec-ink .tbl th,.sec-mid .tbl th{background:rgba(255,255,255,.05);color:var(--sand)} .sec-ink .tbl td,.sec-mid .tbl td,.sec-ink .tbl,.sec-mid .tbl{border-color:rgba(237,216,210,.16);color:var(--td-sub)} .sec-ink .btn-line,.sec-mid .btn-line{color:var(--sand);border-color:rgba(237,216,210,.45)} .sec-ink .btn-line::before,.sec-mid .btn-line::before{background:var(--sand)} .sec-ink .btn-line:hover,.sec-mid .btn-line:hover{color:var(--ink-900)} .sec-ink .btn-gold,.sec-mid .btn-gold{background:var(--sand);color:var(--ink-900);border-color:var(--sand)} .sec-ink .rule,.sec-mid .rule{background:linear-gradient(90deg,transparent,rgba(237,216,210,.28) 30%,rgba(237,216,210,.28) 70%,transparent)} .sec-ink .pfig,.sec-mid .pfig{color:var(--td)} .sec-ink .net,.sec-mid .net{opacity:.5; background-image: linear-gradient(90deg,rgba(237,216,210,.16) 1px,transparent 1px), linear-gradient(180deg,rgba(237,216,210,.11) 1px,transparent 1px), radial-gradient(circle at 0 0,rgba(237,216,210,.5) 1.7px,transparent 2px); background-size:27.3% 100%, 100% 37%, 27.3% 37%; background-position:6% 0, 0 12%, 6% 12%} .sec-ink .veil i,.sec-mid .veil i{background:rgba(237,216,210,.13)} .sec-ink .oline,.sec-mid .oline{border-color:rgba(237,216,210,.34)} .sec-ink .oline::after,.sec-mid .oline::after{border-color:rgba(237,216,210,.22)} .sec-ink .form input,.sec-ink .form select,.sec-ink .form textarea, .sec-mid .form input,.sec-mid .form select,.sec-mid .form textarea{ background:rgba(255,255,255,.06);border-color:rgba(237,216,210,.2);color:var(--td)} /* --- 明るい面の上の文字 --- */ .sec-pale,.sec-sand,.sec-white{color:var(--text)} .sec-pale .card,.sec-pale .svc,.sec-pale .box,.sec-pale .panel,.sec-pale .stat,.sec-pale .tool, .sec-pale .cta-card,.sec-pale .qbox,.sec-pale .voice,.sec-pale .news-list li,.sec-pale .case, .sec-pale .rec-point,.sec-pale .hub li,.sec-pale .type-card,.sec-pale .pcl-card, .sec-sand .card,.sec-sand .svc,.sec-sand .box,.sec-sand .panel,.sec-sand .stat,.sec-sand .tool, .sec-sand .cta-card,.sec-sand .qbox,.sec-sand .voice,.sec-sand .news-list li,.sec-sand .case, .sec-sand .hub li,.sec-sand .pcl-card{background:#fff} .sec-pale .tbl,.sec-sand .tbl,.sec-pale .form input,.sec-sand .form input, .sec-pale .form select,.sec-sand .form select,.sec-pale .form textarea,.sec-sand .form textarea{background:#fff} .sec-white .card,.sec-white .svc,.sec-white .stat,.sec-white .case{background:#fff} /* --- 面をまたぐ小さな面(崩し) --- */ .chip{position:absolute;z-index:0;pointer-events:none} .chip-pale{left:0;width:min(26%,300px);top:-60px;height:150px;background:var(--paper-pale)} .chip-sand{right:8%;width:min(20%,240px);bottom:-56px;height:140px;background:var(--paper-sand)} .chip-mid{right:0;width:min(30%,340px);top:-52px;height:130px;background:var(--paper-mid)} .chip-white{left:9%;width:min(18%,210px);bottom:-50px;height:126px;background:#fff} /* ヒーロー・フッターも同じ濃さで揃える */ .hero,.page-hero,.login-page{background:var(--paper-deep)} .hero::after,.page-hero::after{background:var(--paper-deep)} .footer::before{display:none} .footer{background:var(--ink-900)} .arrowband{background:var(--ink-900)} /* ============================================================ 面の色に合わせて、文字と箱の色を決め切る ============================================================ */ /* 濃い面:文字は明るく */ .sec-ink,.sec-ink p,.sec-ink li,.sec-ink td,.sec-ink span,.sec-ink small,.sec-ink dd,.sec-ink dt, .sec-mid,.sec-mid p,.sec-mid li,.sec-mid td,.sec-mid span,.sec-mid small,.sec-mid dd,.sec-mid dt{ color:var(--td-sub)!important} .sec-ink h1,.sec-ink h2,.sec-ink h3,.sec-ink h4,.sec-ink h5,.sec-ink strong,.sec-ink b, .sec-ink .sec-title,.sec-ink .val,.sec-ink .num,.sec-ink .v, .sec-mid h1,.sec-mid h2,.sec-mid h3,.sec-mid h4,.sec-mid h5,.sec-mid strong,.sec-mid b, .sec-mid .sec-title,.sec-mid .val,.sec-mid .num,.sec-mid .v{color:var(--td)!important} .sec-ink .sec-label,.sec-mid .sec-label,.sec-ink .k,.sec-mid .k,.sec-ink em,.sec-mid em, .sec-ink .en,.sec-mid .en,.sec-ink .time,.sec-mid .time,.sec-ink th,.sec-mid th, .sec-ink .cta-tel,.sec-mid .cta-tel,.sec-ink .lb,.sec-mid .lb{color:var(--sand)!important} .sec-ink a:not(.btn):not(.btn-gold),.sec-mid a:not(.btn):not(.btn-gold){color:var(--td)!important} .sec-ink a:not(.btn):hover,.sec-mid a:not(.btn):hover{color:var(--sand)!important} [style*="navy-700),var(--navy-800)"],[style*="navy-700),var(--navy-800)"] h1,[style*="navy-700),var(--navy-800)"] h2, [style*="navy-700),var(--navy-800)"] h3,[style*="navy-700),var(--navy-800)"] h4,[style*="navy-700),var(--navy-800)"] h5, [style*="navy-700),var(--navy-800)"] p,[style*="navy-700),var(--navy-800)"] li,[style*="navy-700),var(--navy-800)"] span, [style*="navy-700),var(--navy-800)"] td,[style*="navy-700),var(--navy-800)"] em,[style*="navy-700),var(--navy-800)"] strong{ color:var(--ink-900)!important;--gold-300:#3D5570;--gold-400:#4A6485} [style*="navy-700),var(--navy-800)"] em,[style*="navy-700),var(--navy-800)"] strong{color:var(--gold-300)!important} [style*="navy-700),var(--navy-800)"] .btn-line{color:var(--gold-300)!important;border-color:var(--gold-300)!important} .sec-ink .btn-gold,.sec-mid .btn-gold{color:var(--ink-900)!important} .sec-ink .req,.sec-mid .req{background:var(--sand);color:var(--ink-900)!important} /* 濃い面:白かった箱を沈める */ .sec-ink .detail,.sec-mid .detail, .sec-ink .quiz,.sec-mid .quiz, .sec-ink .fig,.sec-mid .fig, .sec-ink .smap,.sec-mid .smap, .sec-ink .road-anim,.sec-mid .road-anim, .sec-ink .qopt,.sec-mid .qopt, .sec-ink details,.sec-mid details{background:rgba(255,255,255,.055)!important; border-color:rgba(237,216,210,.18)!important} .sec-ink .dot,.sec-mid .dot,.sec-ink .num,.sec-mid .num{background:rgba(237,216,210,.16)!important} .sec-ink .s2,.sec-mid .s2{background:rgba(237,216,210,.3)!important} .sec-ink .smap .blk,.sec-mid .smap .blk{fill:rgba(237,216,210,.18)} .sec-ink .smap .st,.sec-mid .smap .st{stroke:rgba(237,216,210,.3)} .sec-ink .smap .st2,.sec-mid .smap .st2{stroke:rgba(237,216,210,.16)} .sec-ink .smap .pt,.sec-mid .smap .pt{fill:var(--sand)} .sec-ink .smap .halo,.sec-mid .smap .halo{stroke:var(--sand)} .sec-ink .map-label,.sec-mid .map-label{color:var(--sand)!important} .sec-ink .tl li::before,.sec-mid .tl li::before{background:var(--ink-900);border-color:rgba(237,216,210,.4)} .sec-ink .tl li.on::before,.sec-mid .tl li.on::before{background:var(--sand);border-color:var(--sand)} .sec-ink .tl::before,.sec-mid .tl::before{background:rgba(237,216,210,.2)} .sec-ink .tl .fillbar,.sec-mid .tl .fillbar{background:var(--sand)} .sec-ink .case-img.pfig::after,.sec-mid .case-img.pfig::after{ background:linear-gradient(transparent,rgba(27,46,62,.94) 72%)} .sec-ink .gal.pfig::after,.sec-mid .gal.pfig::after{ background:linear-gradient(transparent,rgba(27,46,62,.92) 76%)} .sec-ink .gal span,.sec-mid .gal span,.sec-ink .case-img .tagline,.sec-mid .case-img .tagline{ color:var(--td)!important;text-shadow:0 1px 10px rgba(19,32,41,.9)} /* 明るい面:文字は濃く */ .sec-pale,.sec-pale p,.sec-pale li,.sec-pale td,.sec-pale span,.sec-pale small, .sec-sand,.sec-sand p,.sec-sand li,.sec-sand td,.sec-sand span,.sec-sand small, .sec-white,.sec-white p,.sec-white li,.sec-white td,.sec-white span,.sec-white small{color:#3E515C!important} .sec-pale h1,.sec-pale h2,.sec-pale h3,.sec-pale h4,.sec-pale h5,.sec-pale strong,.sec-pale b, .sec-sand h1,.sec-sand h2,.sec-sand h3,.sec-sand h4,.sec-sand h5,.sec-sand strong,.sec-sand b, .sec-white h1,.sec-white h2,.sec-white h3,.sec-white h4,.sec-white h5,.sec-white strong,.sec-white b, .sec-pale .sec-title,.sec-sand .sec-title,.sec-white .sec-title, .sec-pale a:not(.btn),.sec-sand a:not(.btn),.sec-white a:not(.btn){color:var(--ink-800)!important} .sec-pale .sec-label,.sec-sand .sec-label,.sec-white .sec-label, .sec-pale .k,.sec-sand .k,.sec-white .k,.sec-pale .en,.sec-sand .en,.sec-white .en{color:#4A6480!important} .sec-pale .btn-gold,.sec-sand .btn-gold,.sec-white .btn-gold{background:var(--ink-700);color:var(--sand)!important} .sec-pale .pfig,.sec-sand .pfig,.sec-white .pfig{color:var(--ink-700)} .sec-ink .hub li,.sec-mid .hub li, .sec-ink .sig-tabs button,.sec-mid .sig-tabs button, .sec-ink .tabs button,.sec-mid .tabs button, .sec-ink .qopt,.sec-mid .qopt, .sec-ink .mode-tabs button,.sec-mid .mode-tabs button, .sec-ink .chips span,.sec-mid .chips span{ background:rgba(255,255,255,.06)!important;border-color:rgba(237,216,210,.2)!important} .sec-ink .hub li *,.sec-mid .hub li *, .sec-ink .qopt,.sec-mid .qopt,.sec-ink .qopt *,.sec-mid .qopt *, .sec-ink .sig-tabs button span,.sec-mid .sig-tabs button span{color:var(--td-sub)!important} .sec-ink .hub li h4,.sec-mid .hub li h4,.sec-ink .hub li strong,.sec-mid .hub li strong, .sec-ink .sig-tabs button strong,.sec-mid .sig-tabs button strong{color:var(--td)!important} .sec-ink .sig-tabs button.on,.sec-mid .sig-tabs button.on, .sec-ink .tabs button.on,.sec-mid .tabs button.on{background:var(--sand)!important} .sec-ink .sig-tabs button.on *,.sec-mid .sig-tabs button.on *, .sec-ink .tabs button.on,.sec-mid .tabs button.on{color:var(--ink-900)!important} .sec-ink .req,.sec-mid .req{background:var(--sand)!important;color:var(--ink-900)!important} .sec-ink .hub a,.sec-mid .hub a,.sec-ink .hub > *,.sec-mid .hub > *{ background:rgba(255,255,255,.06)!important;border-color:rgba(237,216,210,.2)!important} .sec-ink .hub a *,.sec-mid .hub a *{color:var(--td-sub)!important} .sec-ink .hub a h3,.sec-mid .hub a h3,.sec-ink .hub a h4,.sec-mid .hub a h4{color:var(--td)!important} .sec-ink .hub a .tag,.sec-mid .hub a .tag,.sec-ink .hub .ico svg,.sec-mid .hub .ico svg{color:var(--sand)!important;stroke:var(--sand)} .sec-ink .mode-tabs button,.sec-mid .mode-tabs button, .sec-ink .quiz-head button,.sec-mid .quiz-head button, .sec-ink button:not(.btn):not(.burger),.sec-mid button:not(.btn):not(.burger){color:var(--td-sub)!important} .sec-ink button.on,.sec-mid button.on{color:var(--ink-900)!important} /* ============================================================ MORI のポスターの色と作り 焦茶を一枚の紙にして、長方形の面をずらして重ねる #332C28 / #5E4941 / #8391A0 / #E3DCD0 / #E2B9B3 ============================================================ */ :root{ --paper-deep:#332C28; /* 主役の紙 */ --paper-mid:#5E4941; /* 中間の茶 */ --paper-pale:#8391A0; /* 青灰 */ --paper-sand:#E3DCD0; /* クリーム */ --paper-pink:#E2B9B3; /* ピンク */ --dotc:#8FBBD4; /* 小さな水色の点 */ --ink-900:#241E1B; --ink-800:#332C28; --ink-700:#5E4941; --sand:#E3DCD0; --sand-deep:#C9BCA9; --td:#EDE7DC; --td-sub:#BCB2A6; --line-gold:rgba(227,220,208,.24); --line:rgba(227,220,208,.14); } body{background:var(--paper-deep);color:var(--td)} body::before{background-image: linear-gradient(rgba(227,220,208,.045) 1px,transparent 1px), linear-gradient(90deg,rgba(227,220,208,.045) 1px,transparent 1px)} /* 斜めはやめる。セクションは面を持たない */ .section{margin-block:0;padding-block:clamp(96px,10vw,164px);position:relative;background:none} .sec-ink::before,.sec-mid::before,.sec-pale::before,.sec-sand::before,.sec-white::before{display:none} .cut-a::before,.cut-b::before{clip-path:none} .sec-diag::before{display:none} .sec-diag{background:none} .hero::after,.page-hero::after{display:none} .footer::before{display:none} /* --- 長方形の面(ずらして重ねる) --- */ .plane{position:absolute;z-index:0;pointer-events:none;background:var(--paper-mid)} .pl-brown{left:0;width:min(62%,860px);top:-90px;bottom:22%} .pl-brown.pl-r{left:auto;right:0;width:min(56%,780px);top:16%;bottom:-110px} .pl-brown.pl-wide{left:6%;width:min(80%,1120px);top:-60px;bottom:34%} .pl-brown.pl-tall{top:-40px;bottom:-140px;width:min(46%,640px)} .chip{position:absolute;z-index:0;pointer-events:none} .chip-cream{right:9%;top:-46px;width:min(15%,180px);height:230px;background:var(--paper-sand);opacity:.9} .chip-cream.chip-r{right:auto;left:5%;bottom:-52px;top:auto} .chip-pink{left:14%;bottom:-48px;width:min(17%,200px);height:210px;background:var(--paper-pink);opacity:.92} .chip-pink.chip-r{left:auto;right:6%;bottom:auto;top:-40px} .chip-blue{right:20%;bottom:-40px;width:min(12%,150px);height:260px;background:var(--paper-pale);opacity:.85} /* --- 縦書きのラベル(ポスター左の縦組み) --- */ .vlabel{position:absolute;left:2.2%;top:12%;z-index:1;writing-mode:vertical-rl; font-family:var(--ff-en);font-size:11px;letter-spacing:.42em; color:rgba(237,231,220,.5);pointer-events:none} /* --- 罫線と点は、ページ全体に一枚で通す --- */ .netfix{position:fixed;inset:0;z-index:1;pointer-events:none; background-image: linear-gradient(90deg,rgba(237,231,220,.13) 1px,transparent 1px), linear-gradient(180deg,rgba(237,231,220,.09) 1px,transparent 1px), radial-gradient(circle at 0 0,var(--dotc) 1.9px,transparent 2.2px); background-size:19.4% 100%, 100% 23.7%, 19.4% 23.7%; background-position:7% 0, 0 9%, 7% 9%; opacity:.55} .net{display:none} /* 面の上のカードは沈める */ .sec-ink .card,.sec-ink .svc,.sec-ink .box,.sec-ink .panel,.sec-ink .stat,.sec-ink .tool, .sec-ink .cta-card,.sec-ink .qbox,.sec-ink .voice,.sec-ink .news-list li,.sec-ink .type-card, .sec-ink .rec-point,.sec-ink .hub li,.sec-ink .case,.sec-ink .pcl-card,.sec-ink .detail, .sec-ink .quiz,.sec-ink .fig,.sec-ink .smap,.sec-ink .road-anim,.sec-ink .qopt,.sec-ink details, .sec-ink .hub a{background:rgba(237,231,220,.055)!important;border-color:rgba(237,231,220,.16)!important} /* ヒーロー・フッター・ヘッダー */ .hero,.page-hero,.login-page{background:var(--ink-900)} .footer{background:var(--ink-900)} .arrowband{background:var(--ink-900)} .header.scrolled{background:rgba(36,30,27,.92)} .drop,.mnav{background:rgba(36,30,27,.97)} .sticky-cta .t{background:var(--paper-mid)} .sticky-cta .m{background:var(--paper-pink);color:var(--ink-900)} .btn-gold{background:var(--paper-sand);color:var(--ink-900);border-color:var(--paper-sand)} .tagline i,.radio-h .dot i{background:var(--dotc)} @media (max-width:860px){ .plane{width:92%!important;left:4%!important;right:auto!important} .chip{display:none} .vlabel{display:none} .netfix{opacity:.35} } /* 地図・図版の枠を、紙の色に合わせる */ .sec-ink .areamap{background:var(--paper-sand)!important;border-color:rgba(36,30,27,.2)!important} .areamap .blk{fill:rgba(94,73,65,.16)} .areamap .st{stroke:rgba(94,73,65,.34)} .areamap .st2{stroke:rgba(94,73,65,.18)} .areamap .pt{fill:#5E4941} .areamap .pt.on{fill:#241E1B} .areamap .halo{stroke:#241E1B} .map-label{color:#5E4941!important} .sec-ink .radio{background:rgba(36,30,27,.85)!important;border-color:rgba(227,220,208,.22)!important} .sec-ink .case-img.pfig::after{background:linear-gradient(transparent,rgba(51,44,40,.94) 72%)} .sec-ink .gal.pfig::after{background:linear-gradient(transparent,rgba(51,44,40,.92) 76%)} .pfig .veil i{background:rgba(227,220,208,.16)} .pfig .veil i:nth-child(4){background:rgba(226,185,179,.2)} .hero-tag,.tagline{border-color:rgba(227,220,208,.3);background:rgba(227,220,208,.06)} .hero-h1 em,.hero-facts .n,.sec-title em{color:var(--paper-pink)} .blip{background:var(--paper-sand)} .arrows span svg{fill:var(--paper-sand)} .case-img .kind{background:var(--paper-sand);color:var(--ink-900)!important} /* ============================================================ 1) 色の抜けを直す(残っていた青系トークンを茶系へ) ============================================================ */ :root{ --gold-300:#F1EAE0; --gold-400:#E3DCD0; --gold-500:#C9BCA9; --gold-600:#597594; --sand:#E3DCD0; --sand-deep:#C9BCA9; --text:#EDE7DC; --text-soft:#BCB2A6; --muted:#5A6C76; --line:rgba(227,220,208,.14); --line-gold:rgba(227,220,208,.24); --baton-red:#E0483A; } .pcl-steps li i{background:var(--sand-deep)} .sec-label{color:var(--sand-deep)} .sec-title em{color:var(--paper-pink)} .pfig,.sec-ink .pfig,.sec-mid .pfig,.detail-visual.pfig{color:var(--td)} .sec-ink .areamap,.areamap{background:var(--paper-sand)!important} .areamap .pt{fill:#5E4941}.areamap .pt.on{fill:#241E1B} .sig-name{color:var(--sand)} .hub .ico svg,.svc-ico svg,.tool svg,.type-card .tico svg,.rec-point .ic{stroke:var(--sand-deep)} .detail-visual svg{stroke:var(--sand-deep)} .progress{background:linear-gradient(90deg,var(--paper-mid),var(--baton-red))} /* ============================================================ 2) 警棒のアンダーバー(持ち手は黒、赤いライトが伸びる) ============================================================ */ .gnav>li>a,.drop a,.footer .f-map a,.mnav details ul a,.anchors a{position:relative} .gnav>li>a::before,.drop a::before,.footer .f-map a::before,.anchors a::before{ content:'';position:absolute;left:var(--bx,17px);bottom:6px;width:16px;height:9px;border-radius:2px; background:linear-gradient(180deg,#3A312C,#100D0C 60%); box-shadow:inset 0 1px 0 rgba(227,220,208,.25);opacity:0; transition:opacity .32s ease-out;z-index:1} .gnav>li>a::after,.drop a::after,.footer .f-map a::after,.anchors a::after{ content:'';position:absolute;left:calc(var(--bx,17px) + 15px);right:var(--bx,17px);bottom:8px;height:5px; border-radius:0 3px 3px 0;background:linear-gradient(90deg,#A8261A,#CE3527 45%,#E14E3C); box-shadow:0 0 5px rgba(206,53,39,.75),0 0 12px rgba(206,53,39,.35); transform:scaleX(0);transform-origin:left;width:auto; transition:transform .32s ease-out;z-index:1} .gnav>li:hover>a::after,.drop a:hover::after,.footer .f-map a:hover::after,.anchors a:hover::after{transform:scaleX(1)} .gnav>li:hover>a::before,.drop a:hover::before,.footer .f-map a:hover::before,.anchors a:hover::before{opacity:1} .drop a{--bx:16px} .drop a::before,.drop a::after{bottom:6px} .drop a:hover{padding-left:16px;background:rgba(227,220,208,.07)} .drop a::before{width:0} /* ドロップは線だけ細く */ .footer .f-map a{--bx:0px;display:inline-block} .footer .f-map a::before,.footer .f-map a::after{bottom:-2px} .anchors a{--bx:14px} @media (prefers-reduced-motion:reduce){ .gnav>li>a::after,.drop a::after,.footer .f-map a::after,.anchors a::after{transition:none} } /* ============================================================ 3) 切られた写真(背景の色 → 写真 → 罫線と点 → 本文) ============================================================ */ .psplit{position:absolute;z-index:0;pointer-events:none;overflow:visible;opacity:0; transition:opacity .9s var(--ease)} .psplit.ready{opacity:.52} .ps-img{position:absolute;inset:0;display:block; background-size:cover;background-position:center;background-repeat:no-repeat; filter:saturate(.72) contrast(1.04)} .ps-veil{position:absolute;inset:0;display:block} .ps-veil i{position:absolute;top:0;bottom:0;background:rgba(227,220,208,.16)} .ps-veil i:nth-child(1){left:16%;width:7%} .ps-veil i:nth-child(2){left:45%;width:5%;background:rgba(227,220,208,.1)} .ps-veil i:nth-child(3){left:76%;width:8%;background:rgba(226,185,179,.14)} /* 置き場所(セクションごとに大きさと位置を変える) */ .ph-a{left:0;width:min(48%,700px);top:-90px;height:min(74%,620px)} .ph-b{right:0;width:min(45%,660px);top:4%;height:min(72%,600px)} .ph-c{right:0;width:min(50%,740px);bottom:-100px;height:min(70%,580px)} .ph-d{left:0;width:min(42%,620px);bottom:-70px;height:min(66%,540px)} /* 本文は写真より前、罫線より前 */ .section > .wrap,.section > div{position:relative;z-index:2} .netfix{z-index:1} .header,.mnav,.drop,.sticky-cta{z-index:100} @media (max-width:860px){ .psplit{display:none} .gnav>li>a::before{display:none} } /* 写真の上でも本文が読めるよう、カードは濃く沈める */ .sec-ink .card,.sec-ink .svc,.sec-ink .box,.sec-ink .panel,.sec-ink .stat,.sec-ink .tool, .sec-ink .cta-card,.sec-ink .qbox,.sec-ink .voice,.sec-ink .news-list li,.sec-ink .type-card, .sec-ink .rec-point,.sec-ink .hub li,.sec-ink .hub a,.sec-ink .case,.sec-ink .pcl-card, .sec-ink .detail,.sec-ink .quiz,.sec-ink .fig,.sec-ink .road-anim,.sec-ink .qopt,.sec-ink details{ background:rgba(32,27,24,.66)!important;backdrop-filter:blur(2px); border-color:rgba(227,220,208,.16)!important} /* 見出し・本文の直下にも薄い敷きを入れて、写真に負けないようにする */ .sec-ink .sec-head,.sec-ink .block > h2,.sec-ink .block > .p{position:relative} /* 図版は、ポスターの淡い短冊のようにクリーム色の板に載せる */ .sec-ink .detail-visual.pfig,.sec-ink .case-img.pfig,.sec-ink .gal.pfig, .sec-ink .road-anim,.sec-ink .sigbox,.sec-ink .gd-step .pfig, .sec-ink .dress-wrap > [data-fig],.sec-ink .pcl-card{ background:var(--paper-sand)!important;color:#3A302B!important; border-color:rgba(58,48,43,.18)!important;backdrop-filter:none} .sec-ink .gd-step .pfig,.sec-ink .dress-wrap > [data-fig]{padding:14px} .sec-ink .case-img.pfig::after{background:linear-gradient(transparent,rgba(227,220,208,.94) 72%)} .sec-ink .gal.pfig::after{background:linear-gradient(transparent,rgba(227,220,208,.92) 76%)} .sec-ink .gal span,.sec-ink .case-img .tagline{color:#3A302B!important;text-shadow:none} .sec-ink .pcl-card h4,.sec-ink .pcl-card p{color:#3A302B!important} .pfig .veil i{background:rgba(255,255,255,.34)} .pfig .veil i:nth-child(4){background:rgba(226,185,179,.34)} .map-label{color:#6B564C!important} /* ============================================================ 警棒のアンダーバー(作り直し) 持ち手とライトの寸法を1か所で決めて、どこでもズレないようにする --bx … 左端の位置 --bb … 下からの位置 --bw … 持ち手の幅 --bh … 持ち手の高さ --lh … ライトの高さ ============================================================ */ .gnav>li>a,.drop a,.footer .f-map a,.footer .f-map li a,.anchors a, .mnav details ul a,.mnav .m-single,.smap a,.sitemap a{ --bx:17px; --bb:7px; --bw:15px; --bh:9px; --lh:5px; position:relative} /* 持ち手(黒) */ .gnav>li>a::before,.drop a::before,.footer .f-map a::before,.anchors a::before, .mnav details ul a::before,.mnav .m-single::before,.smap a::before{ content:'';position:absolute;left:var(--bx);bottom:var(--bb); width:var(--bw);height:var(--bh);border-radius:2px;top:auto;right:auto; background:linear-gradient(180deg,#3A312C,#100D0C 60%); box-shadow:inset 0 1px 0 rgba(227,220,208,.25); opacity:0;transform:none;transition:opacity .32s ease-out;z-index:1} /* ライト(赤)── 持ち手の右端からぴったり伸びる */ .gnav>li>a::after,.drop a::after,.footer .f-map a::after,.anchors a::after, .mnav details ul a::after,.mnav .m-single::after,.smap a::after{ content:'';position:absolute; left:calc(var(--bx) + var(--bw) - 1px); right:var(--bx); bottom:calc(var(--bb) + (var(--bh) - var(--lh)) / 2); height:var(--lh);width:auto;top:auto; border-radius:0 3px 3px 0; background:linear-gradient(90deg,#A8261A,#CE3527 45%,#E14E3C); box-shadow:0 0 5px rgba(206,53,39,.75),0 0 12px rgba(206,53,39,.35); transform:scaleX(0);transform-origin:left; transition:transform .32s ease-out;z-index:1} .gnav>li:hover>a::before,.drop a:hover::before,.footer .f-map a:hover::before, .anchors a:hover::before,.mnav details ul a:hover::before,.mnav .m-single:hover::before, .smap a:hover::before{opacity:1} .gnav>li:hover>a::after,.drop a:hover::after,.footer .f-map a:hover::after, .anchors a:hover::after,.mnav details ul a:hover::after,.mnav .m-single:hover::after, .smap a:hover::after{transform:scaleX(1)} /* 場所ごとの位置あわせ */ .drop a{--bx:16px;--bb:5px} .drop a:hover{padding-left:16px;background:rgba(227,220,208,.07)} .footer .f-map a,.footer .f-map li a{--bx:0px;--bb:-3px;display:inline-block} .smap a{--bx:0px;--bb:-3px;display:inline-block} .anchors a{--bx:14px;--bb:6px} .mnav details ul a{--bx:18px;--bb:4px} .mnav .m-single{--bx:4px;--bb:6px} @media (prefers-reduced-motion:reduce){ .gnav>li>a::after,.drop a::after,.footer .f-map a::after,.anchors a::after, .mnav details ul a::after,.smap a::after{transition:none} } /* ============================================================ 中身を見せるための図版・写真は切らない (業務内容・導入事例・ギャラリー・図解など) 窓に切るのは、背景として敷いている装飾の写真だけにする ============================================================ */ .pfig.sliced .pcl-svg,.pfig .pcl-shift{-webkit-mask-image:none!important;mask-image:none!important} .pfig .pcl-shift{display:none!important} .pfig .veil{display:none!important} /* ============================================================ 背景の写真が、ゆっくり淡く光る 点滅ではなく、明るさがゆらぐ程度 ============================================================ */ @keyframes psGlow{ 0%,100%{filter:saturate(.68) contrast(1.02) brightness(.90)} 50% {filter:saturate(.80) contrast(1.07) brightness(1.10)} } @keyframes psHalo{ 0%,100%{opacity:.10} 50% {opacity:.26} } .ps-img{animation:psGlow 9s ease-in-out infinite} .psplit::after{content:'';position:absolute;inset:-8%;pointer-events:none;z-index:-1; background:radial-gradient(ellipse at 50% 50%,rgba(227,220,208,.5),transparent 66%); opacity:.14;animation:psHalo 9s ease-in-out infinite} @media (prefers-reduced-motion:reduce){ .ps-img,.psplit::after{animation:none} } /* ============================================================ トップの一枚目を、他の背景と同じ作りに合わせる ── レーダーと道路は「細い線画」まで落として、 主役は 焦茶の面 + 窓から見える写真 にする ============================================================ */ .hero,.page-hero{background:var(--paper-deep);overflow:hidden} /* レーダー:技術図面のような細い線に */ .radar{opacity:.5;filter:none} .radar .ring{border-color:rgba(227,220,208,.16)} .radar .cross{background:rgba(227,220,208,.10)} .radar .tick::after{background:rgba(227,220,208,.22)} .radar .radar-core{background:rgba(227,220,208,.22);box-shadow:0 0 18px rgba(227,220,208,.25)} .sweep{background:conic-gradient(from 0deg, rgba(227,220,208,0) 0deg,rgba(227,220,208,0) 300deg, rgba(227,220,208,.03) 336deg,rgba(227,220,208,.07) 354deg, rgba(227,220,208,.13) 359.4deg,rgba(227,220,208,0) 360deg)} .sweep-line{background:linear-gradient(90deg,rgba(227,220,208,.45),rgba(227,220,208,0)); box-shadow:0 0 10px rgba(227,220,208,.2)} .blip{background:var(--paper-sand);box-shadow:0 0 0 0 rgba(227,220,208,.4)} .blip::after{color:rgba(227,220,208,.7)} /* 道路:白線だけを細く残す */ .road{opacity:.5} .road .tarmac{fill:rgba(227,220,208,.02)} .road .edge{stroke:rgba(227,220,208,.24)} .road .lane{stroke:rgba(227,220,208,.12)} .road .dash{stroke:rgba(227,220,208,.34)} .car{background:rgba(240,232,222,.85);box-shadow:0 0 10px 3px rgba(227,220,208,.4)} .car.b{background:rgba(226,185,179,.8);box-shadow:0 0 9px 3px rgba(226,185,179,.35)} /* 一枚目に置く面・写真・小片 */ .hero .plane,.page-hero .plane{z-index:1} .hero .psplit,.page-hero .psplit{z-index:2} .hero .chip,.page-hero .chip{z-index:1} .hero-plane{top:-60px;bottom:-60px;width:min(52%,760px)} .ph-hero{right:0;width:min(46%,680px);top:8%;height:min(78%,640px)} .ph-hero .ps-img{background-size:contain;background-position:50% 50%;background-repeat:no-repeat} .hero-chip{right:5%;top:16%;width:min(13%,160px);height:210px} .hero-chip2{left:auto;right:26%;bottom:-70px;width:min(11%,140px);height:180px} .hero .hero-vlabel{display:none} .page-hero .hero-vlabel{left:2%;top:22%;z-index:3} .hero-guard{z-index:4;filter:drop-shadow(0 26px 60px rgba(20,16,14,.55))} .hero-inner,.page-hero .wrap{z-index:5} /* 一枚目にも罫線と点を通す(他のセクションと同じ) */ .hero::before,.page-hero::before{content:'';position:absolute;inset:0;z-index:3;pointer-events:none; opacity:.45; background-image: linear-gradient(90deg,rgba(237,231,220,.13) 1px,transparent 1px), linear-gradient(180deg,rgba(237,231,220,.09) 1px,transparent 1px), radial-gradient(circle at 0 0,var(--dotc) 1.9px,transparent 2.2px); background-size:19.4% 100%, 100% 23.7%, 19.4% 23.7%; background-position:7% 0, 0 9%, 7% 9%} @media (max-width:1180px){.ph-hero{width:52%}} @media (max-width:860px){ .hero-plane,.ph-hero,.hero-chip,.hero-chip2,.hero-vlabel{display:none} .radar{opacity:.35} } /* 中くらいの画面でヘッダーが2行に折り返さないように */ @media (max-width:1400px){ .gnav>li>a{padding:12px 11px;font-size:13.5px} .tel-block .no{font-size:18px} .btn-login{padding:11px 16px;font-size:12.5px} .logo-txt span{font-size:17px;letter-spacing:.03em} } @media (max-width:1180px){ .gnav>li>a{padding:11px 8px;font-size:12.5px;letter-spacing:.04em} .tel-block{display:none} .logo-txt span{font-size:16px} } @media (max-width:1000px){ .gnav,.btn-login{display:none} .burger{display:block} }