/*
 * P-SIX Theme — corporate.css
 * コーポレートTOP (front-page.php) 固有スタイル
 */

/* ═══ HERO ═══ */
.hero { position: relative; height: 100vh; min-height: 800px; display: flex; align-items: flex-end; overflow: hidden; background: var(--ink); }
.hero-bg { position: absolute; inset: 0; }
.hero-bg-grad { position: absolute; inset: 0; background: linear-gradient(175deg, #0e1e2e 0%, #133848 25%, #1a5060 50%, #164858 75%, #0e1e2e 100%); }
.hero-bg-orb { position: absolute; width: 800px; height: 800px; border-radius: 50%; filter: blur(120px); opacity: .18; }
.hero-orb-1 { top: -200px; right: -100px; background: var(--sea-mid); }
.hero-orb-2 { bottom: -300px; left: -200px; background: var(--sea); }
.hero-mesh { position: absolute; inset: 0; opacity: .04; background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 30h60M30 0v60' stroke='%23ffffff' stroke-width='.3' fill='none'/%3E%3C/svg%3E"); background-size: 60px 60px; }
.hero-content { position: relative; z-index: 2; max-width: 1400px; margin: 0 auto; padding: 0 60px 100px; width: 100%; }
.hero-eyebrow { font-family: 'DM Sans', sans-serif; font-size: 10px; font-weight: 400; letter-spacing: 8px; text-transform: uppercase; color: var(--sea-bright); margin-bottom: 40px; opacity: 0; animation: fu .8s ease .4s forwards; }
.hero-title { font-family: 'Playfair Display', serif; font-size: clamp(42px, 6vw, 80px); font-weight: 400; color: var(--white); line-height: 1.2; letter-spacing: -1px; margin-bottom: 36px; opacity: 0; animation: fu .8s ease .6s forwards; }
.hero-title em { font-style: italic; color: var(--sea-bright); }
.hero-sub { font-size: 14px; font-weight: 300; color: var(--mist); line-height: 2.2; max-width: 440px; letter-spacing: .3px; opacity: 0; animation: fu .8s ease .8s forwards; }
.hero-side-label { position: absolute; right: 60px; bottom: 100px; z-index: 2; writing-mode: vertical-rl; font-family: 'DM Sans', sans-serif; font-size: 9px; letter-spacing: 5px; color: var(--steel); text-transform: uppercase; opacity: 0; animation: fu .8s ease 1s forwards; }
.hero-scroll { position: absolute; bottom: 40px; left: 60px; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; opacity: 0; animation: fu .8s ease 1.1s forwards; }
.hero-scroll span { font-family: 'DM Sans', sans-serif; font-size: 8px; letter-spacing: 4px; color: var(--steel); writing-mode: vertical-rl; }
.scroll-bar { width: 1px; height: 40px; background: linear-gradient(to bottom, var(--steel), transparent); animation: scrollAnim 2s ease-in-out infinite; }
@keyframes scrollAnim { 0%, 100% { opacity: 1; transform: scaleY(1); } 50% { opacity: .3; transform: scaleY(.5); } }

/* ═══ PHILOSOPHY ═══ */
.philosophy { background: var(--warm); }
.phil-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.phil-title { font-family: 'Playfair Display', serif; font-size: clamp(26px, 3.5vw, 40px); font-weight: 400; color: var(--ink); line-height: 1.7; margin-bottom: 24px; }
.phil-title em { font-style: italic; color: var(--sea); }
.phil-text { font-size: 14px; font-weight: 300; color: var(--steel); line-height: 2.4; }
.phil-keywords { display: flex; gap: 40px; margin-top: 40px; }
.phil-kw { text-align: center; }
.phil-kw-en { font-family: 'Playfair Display', serif; font-size: 28px; font-weight: 400; color: var(--sea); display: block; }
.phil-kw-jp { font-size: 11px; color: var(--mist); margin-top: 4px; }

/* ═══ BUSINESS ═══ */
.business { background: var(--ink); color: var(--white); position: relative; overflow: hidden; }
.biz-bg-orb { position: absolute; width: 600px; height: 600px; border-radius: 50%; filter: blur(100px); opacity: .08; background: var(--sea); top: -200px; right: -100px; }
.biz-label { color: var(--sea-bright); }
.biz-title { color: var(--white); }
.biz-desc { color: var(--cloud); }
.biz-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.biz-card { display: block; padding: 48px 36px; border: 1px solid rgba(255,255,255,.06); border-radius: 3px; text-decoration: none; color: var(--white); transition: all .5s cubic-bezier(.16,1,.3,1); position: relative; overflow: hidden; }
.biz-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 2px; background: var(--sea-bright); transform: scaleX(0); transition: transform .5s; }
.biz-card:hover { border-color: rgba(255,255,255,.12); transform: translateY(-6px); }
.biz-card:hover::before { transform: scaleX(1); }
.biz-num { font-family: 'Playfair Display', serif; font-size: 36px; font-weight: 400; color: rgba(255,255,255,.08); margin-bottom: 28px; }
.biz-en { font-family: 'DM Sans', sans-serif; font-size: 10px; letter-spacing: 5px; color: var(--sea-bright); text-transform: uppercase; margin-bottom: 8px; }
.biz-name { font-size: 20px; font-weight: 600; margin-bottom: 16px; line-height: 1.6; }
.biz-text { font-size: 13px; font-weight: 300; color: var(--cloud); line-height: 2; margin-bottom: 24px; }
.biz-target-wrap { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.06); }
.biz-target-label { font-family: 'DM Sans', sans-serif; font-size: 8px; letter-spacing: 4px; color: var(--mist); text-transform: uppercase; margin-bottom: 4px; }
.biz-target-text { font-size: 12px; color: var(--cloud); font-weight: 300; }
.biz-arrow { position: absolute; top: 28px; right: 28px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,.1); display: flex; align-items: center; justify-content: center; opacity: 0; transform: translate(-4px, 4px); transition: all .4s; }
.biz-card:hover .biz-arrow { opacity: 1; transform: translate(0); }
.biz-arrow svg { width: 14px; height: 14px; stroke: var(--white); fill: none; stroke-width: 1.5; }

/* ═══ NEWS ═══ */
.news { background: var(--snow); }
.news-list { list-style: none; }
.news-item { padding: 24px 0; border-bottom: 1px solid var(--pearl); display: flex; align-items: center; gap: 24px; cursor: pointer; transition: padding-left .3s; }
.news-item:hover { padding-left: 8px; }
.news-date { font-family: 'DM Sans', sans-serif; font-size: 12px; color: var(--mist); letter-spacing: 1px; flex-shrink: 0; }
.news-tag { font-size: 10px; padding: 3px 12px; background: var(--white); border: 1px solid var(--pearl); border-radius: 2px; color: var(--steel); letter-spacing: 1px; flex-shrink: 0; }
.news-txt { font-size: 14px; color: var(--ink); font-weight: 400; }
.news-more { display: inline-flex; align-items: center; gap: 12px; margin-top: 32px; font-family: 'DM Sans', sans-serif; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--sea); text-decoration: none; transition: gap .3s; }
.news-more:hover { gap: 20px; }
.news-more svg { width: 16px; height: 16px; stroke: var(--sea); fill: none; stroke-width: 1.5; }

/* ═══ COMPANY ═══ */
.company { background: var(--white); }
.comp-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: start; }
.comp-table { width: 100%; }
.comp-table tr { border-bottom: 1px solid var(--pearl); }
.comp-table th { text-align: left; padding: 18px 24px 18px 0; font-size: 12px; font-weight: 600; color: var(--ink); vertical-align: top; white-space: nowrap; }
.comp-table td { padding: 18px 0; font-size: 14px; color: var(--steel); line-height: 1.9; font-weight: 300; }
.comp-msg { background: var(--snow); padding: 48px; border-radius: 2px; border: 1px solid var(--pearl); }
.comp-msg-label { font-family: 'DM Sans', sans-serif; font-size: 10px; letter-spacing: 5px; text-transform: uppercase; color: var(--sea); margin-bottom: 20px; }
.comp-msg-text { font-size: 14px; color: var(--steel); line-height: 2.2; font-weight: 300; margin-bottom: 28px; }
.comp-link { display: inline-flex; align-items: center; gap: 10px; font-family: 'DM Sans', sans-serif; font-size: 12px; letter-spacing: 3px; color: var(--sea); text-decoration: none; transition: gap .3s; }
.comp-link:hover { gap: 18px; }
.comp-link svg { width: 16px; height: 16px; stroke: var(--sea); fill: none; stroke-width: 1.5; }

/* ═══ RESPONSIVE ═══ */
@media (max-width: 1024px) {
  .phil-grid, .comp-grid { grid-template-columns: 1fr; gap: 48px; }
  .biz-grid { grid-template-columns: 1fr; }
  .hero-content { padding: 0 40px 80px; }
}

@media (max-width: 768px) {
  .hero { min-height: 600px; }
  .hero-content { padding: 0 24px 60px; }
  .phil-keywords { flex-direction: column; gap: 20px; }
  .news-item { flex-wrap: wrap; gap: 8px 16px; }
  .comp-msg { padding: 32px 24px; }
}
