/* =========================================================
   AsTech One ご挨拶ページ専用スタイル（.ao-greeting にスコープ）
   ========================================================= */

.ao-greeting { font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif; color: #333; line-height: 1.7; }
.ao-greeting *, .ao-greeting *::before, .ao-greeting *::after { box-sizing: border-box; }
.ao-greeting h1, .ao-greeting h2, .ao-greeting p, .ao-greeting ul, .ao-greeting li, .ao-greeting span { margin: 0; padding: 0; }
.ao-greeting a { color: #2BBFA4; text-decoration: none; }
.ao-greeting a:hover { color: #229e87; }

/* HERO */
.ao-greeting .about-hero { position: relative; background: #0d1a2e; background-image: url('../images/sf_bg.png'); background-size: cover; background-position: center right; overflow: hidden; width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.ao-greeting .about-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, rgba(5,20,50,0.92) 45%, rgba(5,20,50,0.45) 100%); }
.ao-greeting .hero-inner { position: relative; z-index: 2; max-width: 1060px; margin: 0 auto; padding: 72px 20px 68px; }
.ao-greeting .hero-eyebrow { font-size: 16px; font-weight: 700; letter-spacing: 0.12em; color: #2BBFA4; margin-bottom: 20px; }
.ao-greeting .hero-title { font-size: 34px; font-weight: 700; line-height: 1.5; color: #fff; margin-bottom: 26px; letter-spacing: 0.01em; }
.ao-greeting .hero-name { font-size: 16px; color: rgba(255,255,255,0.85); }
.ao-greeting .hero-name .hn-role { color: rgba(255,255,255,0.7); margin-right: 12px; font-size: 16px; }
.ao-greeting .hero-name .hn-person { font-weight: 700; font-size: 18px; letter-spacing: 0.06em; color: #fff; }

/* MAIN */
.ao-greeting .greet-main { max-width: 1060px; margin: 0 auto; padding: 52px 20px; }
.ao-greeting .msg-block { margin-bottom: 48px; }
.ao-greeting .msg-title { font-size: 23px; font-weight: 700; color: #173a5e; padding-bottom: 10px; border-bottom: 2px solid #2BBFA4; display: inline-block; margin-bottom: 24px; }
.ao-greeting .msg-body p { font-size: 16px; line-height: 1.7; color: #333; margin-bottom: 20px; }
.ao-greeting .msg-body p:last-child { margin-bottom: 0; }
.ao-greeting .msg-body p.lead { font-size: 17px; color: #1f3450; font-weight: 600; }
.ao-greeting .signature { margin-top: 36px; padding-top: 24px; border-top: 1px solid #e6edf4; text-align: right; }
.ao-greeting .signature .sig-role { font-size: 16px; color: #7c8a99; letter-spacing: 0.08em; }
.ao-greeting .signature .sig-name { font-size: 23px; font-weight: 700; color: #173a5e; letter-spacing: 0.12em; margin-top: 6px; }

/* CTA */
.ao-greeting .top-cta { background: linear-gradient(160deg, #f0faf8 0%, #dff3ef 100%); border-top: 1px solid #b8e8e2; border-bottom: 1px solid #b8e8e2; padding: 48px 20px; text-align: center; width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.ao-greeting .top-cta-inner { max-width: 720px; margin: 0 auto; }
.ao-greeting .top-cta-title { font-size: 22px; font-weight: 700; color: #173a5e; line-height: 1.5; margin-bottom: 14px; }
.ao-greeting .top-cta-body { font-size: 16px; line-height: 1.8; color: #333; margin-bottom: 26px; }
.ao-greeting .top-cta-btn { display: inline-block; background: #2BBFA4; color: #fff; font-size: 17px; font-weight: 700; padding: 15px 44px; border-radius: 4px; text-decoration: none; box-shadow: 0 6px 18px rgba(43,191,164,0.28); }
.ao-greeting .top-cta-btn:hover { background: #17a897; color: #fff; }
.ao-greeting .top-cta-btn::after { content: ' \2192'; }

.ao-greeting .sp-br { display: none; }

@media (max-width: 768px) {
  .ao-greeting .sp-br { display: inline; }
  .ao-greeting .hero-inner { padding: 36px 16px; }
  .ao-greeting .hero-title { font-size: 24px; }
  .ao-greeting .about-hero { background-image: none; background: #0d1a2e; }
  .ao-greeting .about-hero::before { display: none; }
  .ao-greeting .greet-main { padding: 32px 16px; }
  .ao-greeting .msg-body p br { display: none; }
  .ao-greeting .signature { text-align: left; }
}
