*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{line-break:strict;word-break:normal;overflow-wrap:break-word;min-width:320px;margin:0;overflow-x:hidden}#root{min-height:100svh}img{max-width:100%;height:auto}button{font-family:inherit}a{color:inherit}:root{--color-white:#fff;--color-navy:#1a365d;--color-navy-dark:#0f2744;--color-blue:#2563eb;--color-blue-light:#3b82f6;--color-blue-soft:#eff6ff;--color-gray-50:#f8fafc;--color-gray-100:#f1f5f9;--color-gray-200:#e2e8f0;--color-gray-400:#94a3b8;--color-gray-600:#475569;--color-gray-800:#1e293b;--color-text:#334155;--color-text-muted:#64748b;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 3px #1a365d14;--shadow-md:0 4px 16px #1a365d1a;--shadow-lg:0 8px 32px #1a365d1f;--container:1080px;--section-padding:88px;--header-offset:72px;--font-sans:"Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--focus-ring:0 0 0 3px #2563eb59}.page{font-family:var(--font-sans);color:var(--color-text);background:var(--color-white);word-break:keep-all;overflow-wrap:break-word;font-size:16px;line-height:1.75}.page input,.page textarea,.page select{word-break:normal}.container{width:min(100% - 40px, var(--container));margin-inline:auto}.section,.cta,.hero{scroll-margin-top:var(--header-offset)}.logo:focus-visible,.nav-link:focus-visible,.btn:focus-visible,.faq-question:focus-visible,.modal-close:focus-visible,.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible{box-shadow:var(--focus-ring);outline:none}.nav-link:focus-visible{border-radius:var(--radius-sm)}.faq-question:focus-visible{border-radius:var(--radius-md)}.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible{border-color:var(--color-blue)}.header{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-gray-200);background:#fffffff2;position:sticky;top:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.logo{color:var(--color-navy);letter-spacing:.02em;white-space:nowrap;font-size:1.25rem;font-weight:700;text-decoration:none}.logo:hover{color:var(--color-blue)}.nav{flex-wrap:wrap;gap:8px 20px;display:flex}.nav-link{color:var(--color-gray-600);white-space:nowrap;padding:4px 0;font-size:.9375rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-link:hover{color:var(--color-blue)}.section{padding:var(--section-padding) 0}.section-header{margin-bottom:48px}.section-title{color:var(--color-navy);text-align:center;text-wrap:balance;max-width:720px;margin:0 auto;font-size:clamp(1.375rem,3.2vw,1.875rem);font-weight:700;line-height:1.45}.section-lead{text-align:center;color:var(--color-text-muted);max-width:640px;margin:16px auto 0;line-height:1.8}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;padding:14px 28px;font-size:.9375rem;font-weight:600;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s,transform .15s,border-color .2s;display:inline-flex}.btn-primary{background:var(--color-blue);color:var(--color-white);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--color-navy);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--color-white);color:var(--color-navy);border:1.5px solid var(--color-gray-200)}.btn-secondary:hover{border-color:var(--color-blue);color:var(--color-blue);background:var(--color-blue-soft)}.hero{background:linear-gradient(180deg, var(--color-gray-50) 0%, var(--color-white) 100%);padding:72px 0 96px;overflow:hidden}.hero-grid{grid-template-columns:1fr 1fr;align-items:center;gap:48px;display:grid}.hero-content{max-width:540px}.hero-eyebrow{color:var(--color-blue);background:var(--color-blue-soft);border-radius:999px;margin:0 0 16px;padding:6px 14px;font-size:.8125rem;font-weight:600;display:inline-block}.hero-title{color:var(--color-navy);text-wrap:balance;max-width:16em;margin:0 0 20px;font-size:clamp(1.625rem,3.6vw,2.375rem);font-weight:700;line-height:1.45}.hero-description{color:var(--color-text-muted);max-width:34em;margin:0 0 32px;font-size:clamp(.9375rem,2.2vw,1.0625rem);line-height:1.85}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-visual{min-height:380px;position:relative}.visual-card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:20px}.visual-card-main{z-index:2;position:relative}.visual-card-sub{z-index:3;width:240px;position:absolute;bottom:0;right:0}.visual-card-title{color:var(--color-navy);align-items:center;gap:8px;margin:0 0 16px;font-size:.8125rem;font-weight:600;display:flex}.visual-card-title:before{content:"";background:var(--color-blue);border-radius:50%;width:8px;height:8px}.tag-list{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tag{color:var(--color-navy);background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:999px;padding:4px 12px;font-size:.75rem;font-weight:600}.step-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.step-item{background:var(--color-gray-50);border-radius:var(--radius-sm);color:var(--color-text);align-items:center;gap:12px;padding:10px 12px;font-size:.875rem;display:flex}.step-number{background:linear-gradient(135deg, var(--color-blue), var(--color-navy));width:28px;height:28px;color:var(--color-white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.step-item.done .step-number{background:var(--color-gray-400)}.panel-note{color:var(--color-text-muted);margin:16px 0 0;font-size:.75rem;line-height:1.6}.progress-block{flex-direction:column;gap:8px;display:flex}.progress-row{justify-content:space-between;align-items:center;font-size:.8125rem;display:flex}.progress-label{color:var(--color-navy);font-weight:600}.progress-value{color:var(--color-blue);font-weight:600}.progress-bar{background:var(--color-gray-100);border-radius:4px;height:8px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--color-blue), var(--color-blue-light));border-radius:4px;height:100%}.progress-caption{color:var(--color-text-muted);margin:0;font-size:.75rem;line-height:1.6}.problems{background:var(--color-white)}.problem-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.problem-card{background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);text-align:center;padding:28px 22px;transition:box-shadow .2s,transform .2s}.problem-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.problem-icon{background:var(--color-blue-soft);width:48px;height:48px;color:var(--color-blue);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:1.125rem;font-weight:700;display:flex}.problem-text{color:var(--color-navy);text-align:left;margin:0;font-weight:500;line-height:1.75}.services{background:var(--color-gray-50)}.card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px;display:grid}.service-card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;padding:28px 24px;transition:box-shadow .2s,transform .2s;display:flex}.service-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.service-card-icon{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--color-blue-soft), var(--color-white));border:1px solid var(--color-gray-200);width:52px;height:52px;color:var(--color-blue);justify-content:center;align-items:center;margin-bottom:18px;font-size:1.125rem;font-weight:700;display:flex}.service-card-title{color:var(--color-navy);margin:0 0 10px;font-size:1.125rem;font-weight:700;line-height:1.45}.service-card-text{color:var(--color-text-muted);margin:0 0 16px;font-size:.9375rem;line-height:1.75}.service-card-details{flex:1;margin:0 0 16px;padding:0;list-style:none}.service-card-details li{color:var(--color-text);margin-bottom:8px;padding-left:20px;font-size:.875rem;line-height:1.65;position:relative}.service-card-details li:before{content:"·";color:var(--color-blue);font-weight:700;position:absolute;left:4px}.service-card-scene{border-top:1px solid var(--color-gray-100);color:var(--color-text-muted);margin:0;padding-top:14px;font-size:.8125rem;line-height:1.7}.service-card-scene-label{color:var(--color-navy);margin-bottom:4px;font-weight:600;display:block}.strengths{background:var(--color-white)}.strengths-grid{border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:0;display:grid;overflow:hidden}.strength-item{text-align:center;border-right:1px solid var(--color-gray-200);background:var(--color-white);padding:36px 28px;transition:background .2s}.strength-item:last-child{border-right:none}.strength-item:hover{background:var(--color-gray-50)}.strength-number{background:var(--color-navy);width:36px;height:36px;color:var(--color-white);border-radius:50%;justify-content:center;align-items:center;margin-bottom:16px;font-size:.875rem;font-weight:700;display:inline-flex}.strength-title{color:var(--color-navy);text-wrap:balance;margin:0 0 10px;font-size:1.0625rem;font-weight:700;line-height:1.45}.strength-text{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.75}.flow{background:var(--color-gray-50)}.flow-timeline{grid-template-columns:repeat(5,1fr);gap:16px;margin:0;padding:0;list-style:none;display:grid;position:relative}.flow-timeline:before{content:"";background:var(--color-gray-200);z-index:0;height:2px;position:absolute;top:24px;left:10%;right:10%}.flow-step{z-index:1;text-align:center;flex-direction:column;align-items:center;display:flex;position:relative}.flow-step-marker{background:var(--color-white);border:2px solid var(--color-blue);width:48px;height:48px;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;margin-bottom:16px;display:flex}.flow-step-number{color:var(--color-blue);font-size:1rem;font-weight:700}.flow-step-body{max-width:180px}.flow-step-title{color:var(--color-navy);margin:0 0 8px;font-size:.9375rem;font-weight:700;line-height:1.45}.flow-step-text{color:var(--color-text-muted);margin:0;font-size:.8125rem;line-height:1.7}.works{background:var(--color-white)}.works-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px;display:grid}.work-card{background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;padding:28px 24px;transition:box-shadow .2s,transform .2s;display:flex}.work-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.work-label{color:var(--color-blue);background:var(--color-blue-soft);border-radius:999px;align-self:flex-start;margin-bottom:12px;padding:4px 12px;font-size:.75rem;font-weight:700;display:inline-block}.work-title{color:var(--color-navy);margin:0 0 10px;font-size:1.125rem;font-weight:700;line-height:1.45}.work-summary{color:var(--color-text-muted);flex:1;margin:0 0 16px;font-size:.9375rem;line-height:1.75}.work-tech{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.work-tech-tag{color:var(--color-gray-600);background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);padding:4px 10px;font-size:.75rem;font-weight:600}.work-highlight{border-top:1px solid var(--color-gray-200);color:var(--color-text-muted);margin:0;padding-top:14px;font-size:.8125rem;line-height:1.7}.work-highlight-label{color:var(--color-navy);margin-bottom:4px;font-weight:600;display:block}.faq{background:var(--color-gray-50)}.faq-list{flex-direction:column;gap:12px;max-width:720px;margin:0 auto;display:flex}.faq-item{border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background:var(--color-white);transition:border-color .2s,box-shadow .2s;overflow:hidden}.faq-item.open{border-color:var(--color-blue);box-shadow:var(--shadow-sm)}.faq-question{text-align:left;width:100%;color:var(--color-navy);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px;font-size:1rem;font-weight:600;transition:background .2s;display:flex}.faq-question:hover{background:var(--color-gray-50)}.faq-item.open .faq-question{background:var(--color-blue-soft)}.faq-question-text{text-wrap:pretty;flex:1;min-width:0;line-height:1.65}.faq-icon{background:var(--color-gray-100);width:28px;height:28px;color:var(--color-navy);border-radius:50%;flex-shrink:0;transition:transform .25s,background .2s;position:relative}.faq-icon:before,.faq-icon:after{content:"";background:currentColor;border-radius:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.faq-icon:before{width:12px;height:2px}.faq-icon:after{width:2px;height:12px}.faq-item.open .faq-icon{background:var(--color-blue);color:var(--color-white);transform:rotate(45deg)}.faq-answer{color:var(--color-text-muted);padding:0 24px 20px;font-size:.9375rem;line-height:1.8}.faq-answer[hidden]{display:none}.cta{background:linear-gradient(135deg, var(--color-navy) 0%, var(--color-navy-dark) 100%);padding:88px 0}.cta-inner{text-align:center;max-width:640px;margin:0 auto}.cta-title{color:var(--color-white);text-wrap:balance;margin:0 0 16px;font-size:clamp(1.25rem,3.2vw,1.75rem);font-weight:700;line-height:1.5}.cta-description{color:#ffffffd9;margin:0 0 32px;max-width:36em;margin-inline:auto;line-height:1.85}.cta-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn-cta{background:var(--color-white);color:var(--color-navy);padding:16px 32px;font-size:1rem}.btn-cta:hover{background:var(--color-blue-soft);color:var(--color-blue);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.btn-cta-secondary{color:var(--color-white);background:0 0;border:1.5px solid #ffffff80;padding:16px 32px;font-size:1rem}.btn-cta-secondary:hover{border-color:var(--color-white);background:#ffffff1a;transform:translateY(-1px)}.footer{background:var(--color-gray-800);color:#ffffffb3;text-align:center;padding:32px 0}.footer-copy{margin:0 0 8px;font-size:.875rem;line-height:1.6}.footer-note{color:#ffffff73;max-width:520px;margin:0 auto;font-size:.75rem;line-height:1.75}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f27448c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--color-white);border-radius:var(--radius-lg);width:min(100%,520px);max-height:calc(100svh - 48px);box-shadow:var(--shadow-lg);padding:32px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.modal-title{color:var(--color-navy);margin:0 0 8px;font-size:1.375rem;font-weight:700;line-height:1.45}.modal-description{color:var(--color-text-muted);max-width:28em;margin:0;font-size:.9375rem;line-height:1.75}.modal-close{border:1px solid var(--color-gray-200);background:var(--color-white);width:36px;height:36px;color:var(--color-gray-600);cursor:pointer;border-radius:50%;flex-shrink:0;transition:background .2s,color .2s,border-color .2s;position:relative}.modal-close:before,.modal-close:after{content:"";background:currentColor;border-radius:1px;width:14px;height:2px;position:absolute;top:50%;left:50%}.modal-close:before{transform:translate(-50%,-50%)rotate(45deg)}.modal-close:after{transform:translate(-50%,-50%)rotate(-45deg)}.modal-close:hover{background:var(--color-gray-50);color:var(--color-navy);border-color:var(--color-gray-400)}.modal-form{flex-direction:column;gap:20px;display:flex}.form-field{flex-direction:column;gap:6px;display:flex}.form-field label{color:var(--color-navy);font-size:.875rem;font-weight:600}.form-field input,.form-field select,.form-field textarea{width:100%;color:var(--color-text);background:var(--color-white);border:1.5px solid var(--color-gray-200);border-radius:var(--radius-sm);padding:12px 14px;font-family:inherit;font-size:.9375rem;transition:border-color .2s}.form-field textarea{resize:vertical;min-height:100px}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--color-gray-400)}.form-note{color:var(--color-text-muted);margin:0;font-size:.8125rem;line-height:1.75}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.modal-success{text-align:center;padding:16px 0 8px}.modal-success-title{color:var(--color-navy);margin:0 0 12px;font-size:1.125rem;font-weight:700}.modal-success-text{color:var(--color-text-muted);max-width:28em;margin:0 auto 24px;font-size:.9375rem;line-height:1.8}@media (width<=900px){:root{--section-padding:64px}.hero-grid{grid-template-columns:1fr;gap:40px}.hero-content{text-align:center;max-width:none}.hero-title,.hero-description{max-width:none;margin-inline:auto}.hero-description{max-width:36em}.hero-actions{justify-content:center}.hero-visual{max-width:480px;min-height:auto;margin:0 auto}.visual-card-sub{width:100%;margin-top:16px;position:static}.flow-timeline{grid-template-columns:1fr;gap:0;max-width:480px;margin:0 auto}.flow-timeline:before{display:none}.flow-step{text-align:left;flex-direction:row;align-items:flex-start;gap:16px;padding-bottom:28px;position:relative}.flow-step:not(:last-child):after{content:"";background:var(--color-gray-200);width:2px;position:absolute;top:48px;bottom:0;left:23px}.flow-step-marker{flex-shrink:0;margin-bottom:0}.flow-step-body{max-width:none;padding-top:10px}.strength-item{border-right:none;border-bottom:1px solid var(--color-gray-200)}.strength-item:last-child{border-bottom:none}}@media (width<=480px){:root{--section-padding:48px}.container{width:min(100% - 32px, var(--container))}.header-inner{text-align:center;justify-content:center}.nav{justify-content:center;gap:8px 16px}.hero{padding:48px 0 64px}.btn{white-space:normal;width:100%}.hero-actions,.cta-actions{flex-direction:column;width:100%}.problem-text{text-align:center}.modal{padding:24px}.modal-actions{flex-direction:column}.modal-actions .btn{width:100%}}
