@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');:root{--navy:#0d1b3d;--teal:#19a7a6;--blue:#0077b6;--orange:#ff7a00;--pale:#eef8fa;--shadow:0 8px 24px #10224712}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;color:#121b2d;font-family:Inter,'Noto Sans JP',sans-serif;font-size:15px;line-height:1.75;background:#fff}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}.container{width:min(1200px,calc(100% - 76px));margin-inline:auto}.site-header{height:92px;border-bottom:1px solid #e5edf2;background:#ffffffed;position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}.header-inner,.footer-inner{display:flex;align-items:center;justify-content:space-between;height:100%;gap:24px}.brand{display:flex;align-items:center;gap:8px;color:var(--navy);flex-shrink:0}.brand>img{width:76px;height:64px;object-fit:contain}.brand span{display:grid;line-height:1.1;gap:7px}.brand strong{font-size:24px;font-weight:800;letter-spacing:.01em;white-space:nowrap}.brand strong small{font-weight:500;font-size:.68em}.brand em{font-size:10px;color:var(--teal);font-style:normal;letter-spacing:.32em;font-weight:800;white-space:nowrap}.nav{display:flex;align-items:center;gap:31px}.nav a{font-size:13px;font-weight:700;padding:9px 0;white-space:nowrap}.nav a:hover,.nav a.active{color:#008fa5}.nav a.active{border-bottom:3px solid var(--teal)}.nav .social{font-family:Arial,sans-serif;font-size:22px;font-weight:800}.menu-toggle{display:none}.hero{position:relative;overflow:hidden;min-height:465px;background:linear-gradient(125deg,#fff 0%,#fff 53%,#e4f4ff 100%)}.hero-inner{min-height:465px;display:grid;grid-template-columns:47% 53%;align-items:center;position:relative;z-index:1}.hero-copy{padding:26px 0 56px}.eyebrow{color:var(--teal);font-weight:800;font-size:12px;letter-spacing:.3em}.hero h1{color:var(--navy);font-weight:900;font-size:clamp(48px,5.3vw,78px);line-height:1.04;letter-spacing:-.05em;margin:9px 0 23px}.intro{font-size:15px;line-height:2;max-width:535px}.hero-actions{display:flex;gap:14px;margin-top:26px}.button{border:2px solid #0068c0;border-radius:50px;font-weight:800;padding:12px 28px;min-width:175px;display:inline-flex;justify-content:space-between;gap:30px;align-items:center;cursor:pointer;font-size:14px;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 7px 18px #0077b633}.button-primary{background:#066bc4;color:white}.button-outline{background:white;color:#0868bd}.hero-visual{display:grid;place-items:center;min-height:430px;position:relative}.hero-mark{width:min(100%,560px);filter:drop-shadow(0 14px 5px #0d1b3d14)}.hero-mark img{display:block;width:100%}.hero-stream{position:absolute;right:-8%;bottom:-25px;width:65%;height:210px;transform:skewY(-17deg);pointer-events:none;opacity:.92}.hero-stream i{position:absolute;right:0;width:100%;height:16px;background:linear-gradient(90deg,#fff0,#d1edff,#0077b6)}.hero-stream i:nth-child(1){top:0;height:50px;opacity:.2}.hero-stream i:nth-child(2){top:68px;height:14px;background:linear-gradient(90deg,#fff0,#54bdf8,#19a7a6)}.hero-stream i:nth-child(3){top:101px;height:8px;background:linear-gradient(90deg,#fff0,#047db9,#ff7a00)}.hero-stream i:nth-child(4){top:125px;height:45px;background:linear-gradient(90deg,#fff0,#80c8ff,#0077b6)}.hero-stream i:nth-child(5){top:182px;height:8px;background:#ff7a00;width:42%}.panel{background:linear-gradient(110deg,#f0f9fa 0%,#f9fbfc 100%);border-radius:10px;padding:29px 42px 36px;margin-top:24px}.section-heading{font-size:24px;line-height:1.3;color:#141a21;margin:0 0 24px;display:flex;align-items:center;gap:14px;font-weight:800}.section-heading:before{content:'';width:31px;height:5px;background:var(--teal);border-radius:4px;flex-shrink:0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.card{overflow:hidden;border-radius:9px;background:white;box-shadow:var(--shadow);transition:transform .2s}.card:hover{transform:translateY(-4px)}.card-image{height:183px;position:relative}.card-image img{width:100%;height:100%;object-fit:cover;display:block}.round-badge{position:absolute;bottom:-20px;left:18px;width:53px;height:53px;border-radius:50%;border:3px solid white;display:grid;place-items:center;color:white;font-size:24px;font-weight:900}.teal{background:var(--teal)}.blue{background:#1b58b8}.orange{background:var(--orange)}.card-content{padding:25px 18px 23px}.card-content h3{font-size:17px;margin:0 0 12px;font-weight:800}.card-content p{font-size:13px;line-height:1.85;margin:0}.history{padding:40px 18px 31px}.timeline{display:grid;grid-template-columns:repeat(7,1fr);position:relative;gap:3px;margin:38px 0 22px}.timeline:before{content:'';position:absolute;top:70px;left:5%;right:5%;height:3px;background:linear-gradient(90deg,#19a7a6,#0086d0,#ff7a00)}.milestone{text-align:center;position:relative}.milestone b{display:block;font-size:18px;color:#079fa5;height:38px}.milestone:nth-child(n+3) b{color:#1557b7}.milestone:last-child b{color:var(--orange)}.milestone-icon{position:relative;display:grid;place-items:center;color:white;margin:0 auto 12px;width:60px;height:60px;border-radius:50%;font-size:27px;font-weight:800}.milestone p{font-size:12px;line-height:1.6;margin:0 auto;max-width:165px}.history-details{text-align:center}.history-details summary{border:1.5px solid #9cbde4;border-radius:40px;padding:6px 30px;color:#1557b7;font-size:13px;display:inline-flex;gap:45px;align-items:center;cursor:pointer;font-weight:700;list-style:none}.history-details summary::-webkit-details-marker{display:none}.history-list{text-align:left;max-width:880px;padding:18px 24px 18px 43px;margin:22px auto;background:#f4f9fc;border-radius:10px}.history-list li{margin:5px 0;font-size:13px}.projects{margin-top:13px}.project .card-content{padding-top:16px}.project .card-content a{display:inline-flex;gap:16px;margin-top:19px;color:#039eaa;font-size:13px;font-weight:800}.play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#ff7a00;color:white;border:3px solid white;border-radius:50%;width:49px;height:49px;display:grid;place-items:center}.map-visual{background:linear-gradient(135deg,#89bffa,#c7f4f6)}.map-illustration{height:100%;display:grid;place-content:center;text-align:center;font-size:22px;color:#0d5888;font-weight:900;letter-spacing:.04em;background:radial-gradient(ellipse,#ffffff70,transparent 60%)}.map-illustration span{font-size:38px;color:#ff7a00}.contact{margin-top:20px;margin-bottom:0;padding-bottom:39px}.contact-grid{display:grid;grid-template-columns:35% 1fr;gap:35px}.contact-info p{font-size:13px;margin:0 0 12px;line-height:1.95}.contact-form{display:grid;gap:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.contact-form label{display:block}.contact-form label>span{display:block;font-size:0;height:0;overflow:hidden}.contact-form input,.contact-form textarea{width:100%;padding:13px 14px;border:1px solid #ccd8de;border-radius:5px;background:white;font-size:14px}.contact-form textarea{resize:vertical}.contact-form button{width:100%;border-radius:4px}.form-notice{margin:0;color:#0d578a;font-size:13px}.footer{background:var(--navy);color:white;margin-top:0;padding:16px 0}.footer .brand{color:white}.footer .brand>img{width:66px;height:60px}.footer .brand strong{font-size:21px}.footer small{font-size:12px}.back-top{width:42px;height:42px;border-radius:50%;border:1px solid white;display:grid;place-items:center;font-size:22px}@media(max-width:900px){.container{width:calc(100% - 36px)}.site-header{height:74px}.brand>img{width:59px;height:53px}.brand strong{font-size:19px}.brand em{font-size:8px}.menu-toggle{display:block;border:0;background:transparent;font-size:26px;color:var(--navy);cursor:pointer}.nav{display:none;position:absolute;top:74px;left:0;right:0;background:white;padding:16px 25px 22px;box-shadow:0 14px 25px #0d1b3d1a;flex-wrap:wrap;gap:12px 25px}.nav.open{display:flex}.hero-inner{grid-template-columns:1fr 1fr}.hero h1{font-size:clamp(42px,6vw,65px)}.cards{gap:14px}.panel{padding:24px 22px}.card-image{height:150px}.timeline{overflow-x:auto;grid-template-columns:repeat(7,145px);padding-bottom:10px}.contact-grid{grid-template-columns:1fr 1.3fr}}@media(max-width:600px){.hero{min-height:0}.hero-inner{display:flex;flex-direction:column;align-items:stretch;padding-top:34px;padding-bottom:35px}.hero-copy{padding:0}.eyebrow{font-size:10px}.hero h1{font-size:52px}.intro{font-size:13px}.hero-actions{flex-wrap:wrap}.button{min-width:0;flex:1;padding:11px 17px;gap:12px}.hero-visual{min-height:0;height:235px}.hero-mark{width:320px;max-width:100%}.hero-stream{width:120%;height:130px}.cards{grid-template-columns:1fr;gap:18px}.card-image{height:200px}.panel{padding:24px 18px}.section-heading{font-size:20px}.history{padding:30px 0}.timeline{margin-top:22px}.contact-grid,.form-row{grid-template-columns:1fr}.contact-info p{font-size:13px}.footer-inner{flex-wrap:wrap}.footer-inner>small{order:3;width:100%;text-align:center}.footer .brand strong{font-size:17px}.footer .brand em{font-size:7px}}
/* Project cards: four entries, clear media links and responsive grid */
.project-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.project .card-image{display:block;overflow:hidden;height:225px}
.project .video-thumbnail img{object-fit:cover;object-position:center center;transition:transform .25s}
.project .video-thumbnail:hover img{transform:scale(1.035)}
.project .video-thumbnail:focus-visible,.project .card-image:focus-visible{outline:3px solid var(--orange);outline-offset:-3px}
.project .card-content a+a{margin-left:20px}
.field-visual{background:linear-gradient(125deg,#def8f2,#c8e6f6 57%,#a5d8fa);isolation:isolate}
.field-visual:before{content:"";position:absolute;inset:-30%;background:repeating-linear-gradient(25deg,transparent 0 36px,#ffffff8c 38px 40px,transparent 42px 78px),repeating-linear-gradient(110deg,transparent 0 54px,#fff9 56px 59px,transparent 61px 110px);transform:rotate(-5deg)}
.field-visual:after{content:"";position:absolute;width:210px;height:210px;border:3px dashed #069ea68f;border-radius:50%;left:51%;top:49%;transform:translate(-50%,-50%)}
.field-title{position:absolute;z-index:2;left:25px;bottom:22px;display:grid;gap:3px;color:var(--navy);font-size:25px;font-weight:900;letter-spacing:.06em;text-shadow:0 1px 5px #fff}
.field-title small{font-size:13px;letter-spacing:.08em;color:#126978}
.field-pin{position:absolute;z-index:2;border:3px solid white;border-radius:50%;width:26px;height:26px;font-size:0;background:var(--orange);box-shadow:0 2px 12px #1235}
.pin-one{top:24%;left:29%}.pin-two{top:36%;right:24%;background:var(--teal)}.pin-three{bottom:28%;right:39%;background:var(--blue)}
@media(max-width:600px){.project-cards{grid-template-columns:1fr;gap:18px}.project .card-image{height:200px}}

/* Bot対策用の非表示項目 */
.spam-trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}

/* 問い合わせフォームのラベル表示とスパム対策欄の非表示 */
.contact-form label>span{display:block;font-size:13px;height:auto;overflow:visible;margin:0 0 6px;font-weight:700;color:#253544}
.contact-form .spam-trap,.contact-form input[name="_honey"]{display:none!important;visibility:hidden!important;position:absolute!important}

/* Inline delivery feedback for the AJAX contact form */
.contact-form .form-status{margin:0;padding:12px 15px;border-radius:6px;font-size:14px;font-weight:700;line-height:1.7}
.contact-form .form-status[hidden]{display:none!important}
.contact-form .is-pending{background:#eef6fc;color:#155783}
.contact-form .is-success{background:#e7f8f2;color:#14634e}
.contact-form .is-error{background:#fff1ee;color:#a33222}
.contact-form button:disabled{opacity:.65;cursor:wait;transform:none;box-shadow:none}
