/*
Theme Name: Solution Plus Corporate
Theme URI: https://solution-plus.co.jp/
Description: ソリューションプラス株式会社のためのLightning子テーマです。
Author: Solution Plus Co., Ltd.
Version: 1.0.3
Template: lightning
Text Domain: solution-plus-corporate
Requires at least: 6.0
Requires PHP: 7.4
*/

:root{--sp-navy:#0b2440;--sp-blue:#1769aa;--sp-sky:#dff2fb;--sp-ice:#f3f8fb;--sp-line:#d9e4ea;--sp-text:#273746;--sp-muted:#657684;--sp-white:#fff;--sp-width:1180px;--sp-shadow:0 20px 60px rgba(11,36,64,.10)}
*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--sp-text);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:var(--sp-blue);text-underline-offset:.2em}
img{max-width:100%;height:auto}
.sp-container{width:min(calc(100% - 48px),var(--sp-width));margin-inline:auto}
.sp-site-header{position:sticky;z-index:100;top:0;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(217,228,234,.9);backdrop-filter:blur(12px)}
.sp-header-inner{display:flex;align-items:center;min-height:82px;gap:34px}
.sp-brand{margin-right:auto;color:var(--sp-navy);font-weight:800;font-size:clamp(1rem,2vw,1.22rem);letter-spacing:.055em;text-decoration:none;white-space:nowrap}
.sp-brand-mark{display:inline-flex;width:28px;height:28px;margin-right:10px;align-items:center;justify-content:center;border:2px solid var(--sp-blue);vertical-align:-7px;transform:rotate(45deg)}
.sp-brand-mark:after{width:9px;height:9px;background:var(--sp-blue);content:""}
.sp-nav ul{display:flex;align-items:center;gap:26px;margin:0;padding:0;list-style:none}
.sp-nav a{color:var(--sp-navy);font-size:.88rem;font-weight:700;text-decoration:none;white-space:nowrap}
.sp-nav a:hover,.sp-nav a:focus-visible{color:var(--sp-blue)}
.sp-nav .sp-contact-link{padding:11px 18px;color:#fff;background:var(--sp-blue);border-radius:2px}
.sp-menu-toggle{display:none;padding:9px;border:0;background:transparent;color:var(--sp-navy);font:inherit;font-weight:700}
.sp-menu-bars,.sp-menu-bars:before,.sp-menu-bars:after{display:block;width:24px;height:2px;background:currentColor;content:""}
.sp-menu-bars{position:relative;margin:7px 0}.sp-menu-bars:before{position:absolute;top:-7px}.sp-menu-bars:after{position:absolute;top:7px}
.sp-hero{position:relative;min-height:690px;display:grid;align-items:center;overflow:hidden;background:linear-gradient(118deg,#fff 0%,#fff 52%,#edf7fb 52%,#dceef6 100%)}
.sp-hero:before{position:absolute;inset:0;background-image:linear-gradient(rgba(23,105,170,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(23,105,170,.08) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,transparent 35%,#000);content:""}
.sp-hero:after{position:absolute;right:-100px;top:50%;width:520px;height:520px;border:1px solid rgba(23,105,170,.22);border-radius:50%;box-shadow:0 0 0 70px rgba(23,105,170,.05),0 0 0 150px rgba(23,105,170,.04);transform:translateY(-50%);content:""}
.sp-hero-inner{position:relative;z-index:2;padding-block:100px}
.sp-eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 22px;color:var(--sp-blue);font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.sp-eyebrow:before{width:34px;height:2px;background:currentColor;content:""}
.sp-hero h1{max-width:820px;margin:0;color:var(--sp-navy);font-size:clamp(2.25rem,5.6vw,4.65rem);line-height:1.28;letter-spacing:.015em}
.sp-hero h1 em{color:var(--sp-blue);font-style:normal}
.sp-hero-lead{max-width:650px;margin:32px 0 0;color:#4d6273;font-size:clamp(1rem,2vw,1.2rem)}
.sp-hero-actions{display:flex;gap:14px;margin-top:38px}
.sp-audience{color:#dce9f1;background:var(--sp-navy)}
.sp-audience-inner{display:flex;min-height:92px;align-items:center;gap:40px}
.sp-audience p{margin:0;flex:0 0 auto;color:#72c4eb;font-size:.75rem;font-weight:800;letter-spacing:.12em}
.sp-audience ul{display:flex;flex:1;justify-content:space-between;gap:18px;margin:0;padding:0;list-style:none}
.sp-audience li{position:relative;padding-left:17px;font-size:.88rem;font-weight:700;white-space:nowrap}
.sp-audience li:before{position:absolute;left:0;top:.72em;width:6px;height:6px;background:#58b3df;content:""}
.sp-button{display:inline-flex;min-height:54px;padding:13px 24px;align-items:center;justify-content:center;border:1px solid var(--sp-blue);border-radius:2px;font-weight:800;text-decoration:none;transition:.2s ease}
.sp-button--primary{color:#fff;background:var(--sp-blue)}.sp-button--primary:hover{color:#fff;background:var(--sp-navy);border-color:var(--sp-navy);transform:translateY(-2px)}
.sp-button--ghost{color:var(--sp-navy);background:#fff}.sp-button--ghost:hover{background:var(--sp-ice);transform:translateY(-2px)}
.sp-section{padding-block:clamp(72px,9vw,120px)}
.sp-section--tint{background:var(--sp-ice)}
.sp-section--navy{color:#fff;background:var(--sp-navy)}
.sp-section-head{display:grid;grid-template-columns:minmax(180px,.65fr) 1.35fr;gap:50px;margin-bottom:52px;align-items:end}
.sp-kicker{margin:0 0 8px;color:var(--sp-blue);font-size:.76rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.sp-section--navy .sp-kicker{color:#73c6ef}
.sp-section-title{margin:0;color:var(--sp-navy);font-size:clamp(1.75rem,3.6vw,2.85rem);line-height:1.35;letter-spacing:.025em}
.sp-section--navy .sp-section-title{color:#fff}
.sp-section-intro{max-width:650px;margin:0;color:var(--sp-muted)}
.sp-section--navy .sp-section-intro{color:#c7d5df}
.sp-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sp-service-card{position:relative;min-height:310px;padding:34px;background:#fff;border:1px solid var(--sp-line);overflow:hidden;transition:.25s ease}
.sp-service-card:hover{border-color:#9fc7df;box-shadow:var(--sp-shadow);transform:translateY(-4px)}
.sp-service-card:after{position:absolute;right:-42px;bottom:-42px;width:110px;height:110px;border:1px solid #c4deec;border-radius:50%;content:""}
.sp-card-no{color:#9eb3c0;font-size:.72rem;font-weight:800;letter-spacing:.16em}
.sp-service-card h3{margin:20px 0 14px;color:var(--sp-navy);font-size:1.25rem;line-height:1.5}
.sp-service-card p{margin:0;color:var(--sp-muted);font-size:.93rem}
.sp-deliverables{display:grid;grid-template-columns:.75fr 1.25fr;gap:56px;margin-top:64px;padding:40px;background:var(--sp-ice);border-top:3px solid var(--sp-blue)}
.sp-deliverables h3{margin:0;color:var(--sp-navy);font-size:1.45rem;line-height:1.5}
.sp-deliverables ul{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none;border-top:1px solid var(--sp-line);border-left:1px solid var(--sp-line)}
.sp-deliverables li{padding:16px 18px;background:#fff;border-right:1px solid var(--sp-line);border-bottom:1px solid var(--sp-line);color:var(--sp-navy);font-size:.9rem;font-weight:700}
.sp-deliverables li span{margin-right:10px;color:#8da6b5;font-size:.7rem;letter-spacing:.1em}
.sp-equipment-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.2);border-left:1px solid rgba(255,255,255,.2)}
.sp-equipment{min-height:210px;padding:30px 24px;border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}
.sp-equipment-icon{display:grid;width:46px;height:46px;margin-bottom:24px;place-items:center;border:1px solid #66b7df;border-radius:50%;color:#83d0f3;font-weight:800}
.sp-equipment h3{margin:0 0 8px;color:#fff;font-size:1.05rem}.sp-equipment p{margin:0;color:#b8c9d6;font-size:.88rem}
.sp-strengths{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.sp-blueprint{position:relative;min-height:430px;background:#e7f4fa;border:1px solid #c9e1ed;overflow:hidden}
.sp-blueprint:before{position:absolute;inset:26px;background-image:linear-gradient(rgba(23,105,170,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(23,105,170,.18) 1px,transparent 1px);background-size:26px 26px;border:2px solid rgba(23,105,170,.35);content:""}
.sp-blueprint:after{position:absolute;left:18%;top:22%;width:58%;height:48%;border:8px double rgba(23,105,170,.62);box-shadow:80px 80px 0 -60px #e7f4fa,80px 80px 0 -57px rgba(23,105,170,.5);content:""}
.sp-strength-copy h2{margin:0 0 24px;color:var(--sp-navy);font-size:clamp(1.75rem,3.6vw,2.8rem);line-height:1.42}
.sp-strength-copy p{color:var(--sp-muted)}
.sp-points{margin:30px 0 0;padding:0;list-style:none}
.sp-points li{position:relative;padding:16px 0 16px 38px;border-top:1px solid var(--sp-line);color:var(--sp-navy);font-weight:700}
.sp-points li:before{position:absolute;left:4px;top:21px;width:14px;height:8px;border-left:2px solid var(--sp-blue);border-bottom:2px solid var(--sp-blue);transform:rotate(-45deg);content:""}
.sp-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:flow}
.sp-flow-item{position:relative;padding:30px;border-top:3px solid var(--sp-blue);background:#fff;counter-increment:flow}
.sp-flow-item+.sp-flow-item{border-left:1px solid var(--sp-line)}
.sp-flow-item:before{display:block;margin-bottom:18px;color:#9bb0bd;font-size:.74rem;font-weight:800;letter-spacing:.14em;content:"STEP " counter(flow,decimal-leading-zero)}
.sp-flow-item h3{margin:0 0 10px;color:var(--sp-navy);font-size:1.1rem}.sp-flow-item p{margin:0;color:var(--sp-muted);font-size:.88rem}
.sp-cta{position:relative;padding:clamp(45px,7vw,75px);overflow:hidden;background:linear-gradient(120deg,#0b2440,#104b76);color:#fff}
.sp-cta:after{position:absolute;right:-70px;top:-120px;width:360px;height:360px;border:1px solid rgba(255,255,255,.18);border-radius:50%;content:""}
.sp-cta-inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:40px}
.sp-cta h2{margin:0 0 12px;color:#fff;font-size:clamp(1.6rem,3.3vw,2.5rem)}.sp-cta p{margin:0;color:#c7d8e4}
.sp-page-hero{padding:76px 0 62px;background:linear-gradient(120deg,#f7fafc,#e7f3f8);border-bottom:1px solid var(--sp-line)}
.sp-page-hero h1{margin:0;color:var(--sp-navy);font-size:clamp(2rem,4vw,3.2rem)}
.sp-page-content{padding-block:70px;min-height:480px}.sp-page-content>.sp-container{max-width:920px}
.sp-page-content h2{margin:2.4em 0 .8em;color:var(--sp-navy);font-size:1.75rem;border-bottom:2px solid var(--sp-blue);padding-bottom:.45em}.sp-page-content h3{color:var(--sp-navy)}
.sp-page-content table{width:100%;border-collapse:collapse}.sp-page-content th,.sp-page-content td{padding:16px;border:1px solid var(--sp-line);text-align:left}.sp-page-content th{width:28%;background:var(--sp-ice);color:var(--sp-navy)}
.sp-contact-form label{display:block;margin-bottom:20px;color:var(--sp-navy);font-weight:700}.sp-contact-form input:not([type="checkbox"]),.sp-contact-form textarea{display:block;width:100%;margin-top:7px;padding:12px 14px;border:1px solid #b8cad5;border-radius:2px;background:#fff;font:inherit}.sp-contact-form textarea{min-height:190px;resize:vertical}.sp-contact-form input:focus,.sp-contact-form textarea:focus{outline:3px solid rgba(23,105,170,.16);border-color:var(--sp-blue)}.sp-contact-form input[type="submit"]{min-height:54px;padding:13px 28px;border:1px solid var(--sp-blue);border-radius:2px;color:#fff;background:var(--sp-blue);font:inherit;font-weight:800;cursor:pointer}.sp-contact-form .sp-required{margin-left:6px;color:#b73535;font-size:.78em}.sp-contact-form .sp-optional{margin-left:6px;color:var(--sp-muted);font-size:.78em}.sp-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.sp-site-footer{padding-top:62px;color:#b9c8d3;background:#071a2c}
.sp-footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:60px;padding-bottom:48px}
.sp-footer-brand{color:#fff;font-size:1.08rem;font-weight:800;letter-spacing:.05em}.sp-footer-copy{margin-top:16px;font-size:.88rem}
.sp-footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px}.sp-footer-nav a{color:#cad6df;font-size:.86rem;text-decoration:none}.sp-footer-nav a:hover{color:#fff}
.sp-footer-meta h3{margin:0 0 12px;color:#fff;font-size:.9rem}.sp-footer-meta p{margin:0;font-size:.85rem}
.sp-footer-bottom{padding:20px 0;border-top:1px solid rgba(255,255,255,.12);font-size:.76rem}
.sp-skip-link{position:fixed;z-index:999;left:12px;top:-100px;padding:10px 16px;color:#fff;background:var(--sp-navy)}.sp-skip-link:focus{top:12px}
@media(max-width:960px){.sp-menu-toggle{display:block}.sp-nav{display:none;position:absolute;top:82px;left:0;width:100%;padding:20px 24px;background:#fff;border-bottom:1px solid var(--sp-line);box-shadow:0 20px 35px rgba(11,36,64,.1)}.sp-nav.is-open{display:block}.sp-nav ul{display:grid;gap:0}.sp-nav a{display:block;padding:12px 6px;border-bottom:1px solid var(--sp-line)}.sp-nav .sp-contact-link{margin-top:10px;text-align:center}.sp-service-grid{grid-template-columns:repeat(2,1fr)}.sp-equipment-grid{grid-template-columns:repeat(2,1fr)}.sp-strengths{gap:36px}.sp-flow{grid-template-columns:repeat(2,1fr)}.sp-flow-item:nth-child(3){border-left:0}.sp-section-head{grid-template-columns:1fr;gap:20px}.sp-audience-inner{display:block;padding-block:22px}.sp-audience p{margin-bottom:12px}.sp-audience ul{flex-wrap:wrap;justify-content:flex-start}.sp-footer-grid{grid-template-columns:1fr 1fr}.sp-footer-meta{grid-column:1/-1}}
@media(max-width:640px){.sp-container{width:min(calc(100% - 32px),var(--sp-width))}.sp-header-inner{min-height:70px}.sp-brand{font-size:.93rem}.sp-brand-mark{width:22px;height:22px}.sp-nav{top:70px}.sp-hero{min-height:610px;background:linear-gradient(150deg,#fff 0%,#fff 60%,#e4f2f8 60%)}.sp-hero-inner{padding-block:64px}.sp-hero h1{font-size:clamp(1.9rem,9vw,2.5rem);overflow-wrap:anywhere;word-break:break-all}.sp-hero-lead{overflow-wrap:anywhere;word-break:break-all}.sp-hero-actions{display:grid}.sp-audience ul{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.sp-audience li{white-space:normal}.sp-service-grid,.sp-equipment-grid,.sp-strengths,.sp-flow,.sp-footer-grid,.sp-deliverables{grid-template-columns:1fr}.sp-service-card{min-height:auto}.sp-deliverables{gap:24px;margin-top:40px;padding:28px 20px}.sp-deliverables ul{grid-template-columns:1fr}.sp-equipment{min-height:auto}.sp-blueprint{min-height:290px}.sp-flow-item+.sp-flow-item{border-left:0}.sp-cta-inner{display:block}.sp-cta .sp-button{width:100%;margin-top:26px}.sp-footer-nav{grid-template-columns:1fr}.sp-page-content th,.sp-page-content td{display:block;width:100%}.sp-page-content th{border-bottom:0}.sp-page-content td{border-top:0}.sp-section{padding-block:64px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
