*{margin:0;padding:0;box-sizing:border-box;}html{scroll-behavior:smooth;}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans','Noto Sans JP',sans-serif;line-height:1.6;color:#333;}.skip-link{position:absolute;top:-40px;left:0;background:#1e3a8a;color:#ffffff;padding:8px 16px;text-decoration:none;font-weight:600;z-index:100;border-radius:0 0 4px 0;}.skip-link:focus{top:0;outline:3px solid #f59e0b;outline-offset:2px;}.container{max-width:1200px;margin:0 auto;padding:0 20px;}.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3a8a 0%,#3b82f6 50%,#60a5fa 100%);position:relative;overflow:hidden;}.hero-section::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.1);z-index:1;}.hero-container{max-width:1200px;margin:0 auto;padding:40px 20px;position:relative;z-index:2;}.hero-content{text-align:center;color:#ffffff;}.hero-text-group{margin-bottom:24px;}.hero-headline{font-size:48px;font-weight:700;line-height:1.2;margin-bottom:12px;text-shadow:2px 2px 4px rgba(0,0,0,0.3);}.hero-headline[lang="ja"]{font-size:42px;font-weight:600;}.hero-subheadline-group{margin-bottom:40px;}.hero-subheadline{font-size:20px;line-height:1.6;margin-bottom:8px;opacity:0.95;max-width:800px;margin-left:auto;margin-right:auto;}.hero-subheadline[lang="ja"]{font-size:18px;}.hero-cta{margin-top:40px;}.cta-button{display:inline-block;padding:16px 40px;background-color:#f59e0b;color:#ffffff;text-decoration:none;font-size:18px;font-weight:600;border-radius:8px;transition:all 0.3s ease;box-shadow:0 4px 6px rgba(0,0,0,0.2);}.cta-button:hover{background-color:#d97706;transform:translateY(-2px);box-shadow:0 6px 12px rgba(0,0,0,0.3);}.cta-button:active{transform:translateY(0);}.cta-button:focus{outline:3px solid #ffffff;outline-offset:4px;}.cta-separator{margin:0 8px;opacity:0.7;}.services-section{padding:80px 0;background-color:#f9fafb;}.section-heading{text-align:center;margin-bottom:60px;}.section-heading h2{font-size:36px;font-weight:700;color:#1e3a8a;margin-bottom:8px;}.section-heading h2[lang="ja"]{font-size:32px;font-weight:600;}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:1200px;margin:0 auto;}.service-card{background-color:#ffffff;border-radius:12px;padding:40px 32px;box-shadow:0 2px 8px rgba(0,0,0,0.08);transition:all 0.3s ease;display:flex;flex-direction:column;align-items:center;text-align:center;}.service-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.12);}.service-card:focus-within{outline:3px solid #3b82f6;outline-offset:2px;}.service-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background-color:#dbeafe;border-radius:12px;margin-bottom:24px;color:#1e3a8a;}.service-icon svg{width:48px;height:48px;}.service-title{font-size:22px;font-weight:600;color:#1e3a8a;margin-bottom:8px;}.service-title[lang="ja"]{font-size:20px;}.service-description{font-size:16px;line-height:1.6;color:#4b5563;margin-bottom:8px;}.service-description[lang="ja"]{font-size:15px;line-height:1.7;}.service-description:last-child{margin-bottom:0;}.about-section{padding:80px 0;background-color:#ffffff;}.about-content{display:flex;gap:60px;align-items:flex-start;margin-top:40px;}.about-image{flex:0 0 300px;}.image-placeholder{width:300px;height:300px;background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#1e3a8a;box-shadow:0 4px 12px rgba(0,0,0,0.08);}.about-text{flex:1;}.biography{margin-bottom:40px;}.bio-paragraph{margin-bottom:16px;}.bio-paragraph p{font-size:16px;line-height:1.7;color:#4b5563;}.bio-paragraph[lang="ja"] p{font-size:15px;line-height:1.8;}.credentials h3{font-size:24px;font-weight:600;color:#1e3a8a;margin-bottom:8px;}.credentials h3[lang="ja"]{font-size:22px;}.credentials-list{list-style:none;margin-top:24px;}.credentials-list li{padding:12px 0;border-bottom:1px solid #e5e7eb;display:flex;flex-direction:column;gap:4px;}.credentials-list li:last-child{border-bottom:none;}.credentials-list li span{font-size:16px;line-height:1.6;color:#374151;}.credentials-list li span[lang="ja"]{font-size:15px;color:#6b7280;}.credentials-list li span[lang="en"]{font-weight:500;}.contact-section{padding:80px 0;background-color:#f9fafb;}.contact-content{display:grid;grid-template-columns:2fr 1fr;gap:60px;margin-top:40px;}.contact-form-wrapper{background-color:#ffffff;border-radius:12px;padding:40px;box-shadow:0 2px 8px rgba(0,0,0,0.08);}.form-intro{margin-bottom:32px;}.form-intro p{font-size:16px;line-height:1.6;color:#4b5563;margin-bottom:8px;}.form-intro p[lang="ja"]{font-size:15px;line-height:1.7;}.contact-form{width:100%;}.form-group{margin-bottom:24px;}.form-label{display:block;font-size:16px;font-weight:600;color:#1e3a8a;margin-bottom:8px;}.label-separator{margin:0 6px;opacity:0.6;}.required-indicator{color:#dc2626;margin-left:4px;}.form-input{width:100%;padding:12px 16px;font-size:16px;font-family:inherit;color:#1f2937;background-color:#ffffff;border:2px solid #d1d5db;border-radius:8px;transition:all 0.3s ease;min-height:48px;}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,0.1);}.form-input:hover:not(:focus){border-color:#9ca3af;}.form-textarea{resize:vertical;min-height:120px;line-height:1.6;}.form-input.error{border-color:#dc2626;background-color:#fef2f2;}.form-input.error:focus{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,0.1);}.error-message{display:block;margin-top:6px;font-size:14px;color:#dc2626;line-height:1.4;}.error-message:empty{display:none;}.form-actions{margin-top:32px;}.submit-button{width:100%;padding:14px 32px;font-size:18px;font-weight:600;color:#ffffff;background-color:#f59e0b;border:none;border-radius:8px;cursor:pointer;transition:all 0.3s ease;min-height:52px;box-shadow:0 2px 4px rgba(0,0,0,0.1);}.submit-button:hover:not(:disabled){background-color:#d97706;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,0.15);}.submit-button:active:not(:disabled){transform:translateY(0);}.submit-button:disabled{opacity:0.6;cursor:not-allowed;}.submit-button:focus{outline:none;box-shadow:0 0 0 3px rgba(245,158,11,0.3);}.form-message{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:8px;margin-top:24px;}.message-icon{flex-shrink:0;width:24px;height:24px;}.message-text p{font-size:15px;line-height:1.6;margin-bottom:4px;}.message-text p:last-child{margin-bottom:0;}.success-message{background-color:#d1fae5;border:2px solid #10b981;color:#065f46;}.success-message .message-icon{color:#10b981;}.error-message-box{background-color:#fee2e2;border:2px solid #dc2626;color:#991b1b;}.error-message-box .message-icon{color:#dc2626;}.contact-info{background-color:#ffffff;border-radius:12px;padding:32px;box-shadow:0 2px 8px rgba(0,0,0,0.08);height:fit-content;}.contact-info h3{font-size:22px;font-weight:600;color:#1e3a8a;margin-bottom:8px;}.contact-info h3[lang="ja"]{font-size:20px;}.contact-methods{margin-top:24px;}.contact-method{display:flex;align-items:flex-start;gap:16px;padding:20px 0;border-bottom:1px solid #e5e7eb;}.contact-method:last-child{border-bottom:none;}.contact-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background-color:#dbeafe;border-radius:8px;color:#1e3a8a;flex-shrink:0;}.contact-details{flex:1;}.contact-label{font-size:14px;font-weight:600;color:#6b7280;margin-bottom:4px;}.contact-link{font-size:16px;color:#1e3a8a;text-decoration:none;font-weight:500;transition:color 0.3s ease;}.contact-link:hover{color:#3b82f6;text-decoration:underline;}.contact-link:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:2px;}.social-links{padding:20px 0;}.social-label{font-size:14px;font-weight:600;color:#6b7280;margin-bottom:4px;}.social-icons{display:flex;gap:12px;margin-top:16px;}.social-link{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background-color:#dbeafe;border-radius:8px;color:#1e3a8a;transition:all 0.3s ease;text-decoration:none;}.social-link:hover{background-color:#3b82f6;color:#ffffff;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,0.15);}.social-link:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,0.3);}.footer-section{padding:60px 0 40px;background-color:#1e3a8a;color:#ffffff;}.footer-content{display:grid;grid-template-columns:1fr 1fr;gap:48px;max-width:1200px;margin:0 auto;}.footer-nav{display:flex;flex-direction:column;}.footer-nav-title{font-size:18px;font-weight:600;margin-bottom:20px;color:#ffffff;}.footer-nav-title[lang="ja"]{font-size:17px;}.footer-nav-list{list-style:none;display:flex;flex-direction:column;gap:12px;}.footer-link{color:#dbeafe;text-decoration:none;font-size:15px;transition:all 0.3s ease;display:inline-block;}.footer-link:hover{color:#ffffff;transform:translateX(4px);}.footer-link:focus{outline:3px solid #f59e0b;outline-offset:2px;border-radius:4px;background-color:rgba(245,158,11,0.2);}.footer-social{display:flex;flex-direction:column;}.footer-social-title{font-size:18px;font-weight:600;margin-bottom:20px;color:#ffffff;}.footer-social-title[lang="ja"]{font-size:17px;}.footer-social-icons{display:flex;gap:16px;flex-wrap:wrap;}.footer-social-link{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background-color:rgba(219,234,254,0.15);border:2px solid rgba(219,234,254,0.4);border-radius:8px;color:#dbeafe;transition:all 0.3s ease;text-decoration:none;}.footer-social-link:hover{background-color:#f59e0b;border-color:#f59e0b;color:#ffffff;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,0.3);}.footer-social-link:focus{outline:3px solid #f59e0b;outline-offset:2px;background-color:rgba(245,158,11,0.3);}.footer-social-link svg{width:20px;height:20px;}.footer-copyright{grid-column:1 / -1;text-align:center;padding-top:32px;border-top:1px solid rgba(191,219,254,0.2);margin-top:16px;}.footer-copyright p{font-size:14px;color:#dbeafe;margin-bottom:4px;line-height:1.6;}.footer-copyright p:last-child{margin-bottom:0;}a:focus,button:focus,input:focus,textarea:focus,select:focus{outline-width:3px;outline-style:solid;outline-offset:2px;}*:focus-visible{outline:3px solid #3b82f6;outline-offset:2px;}