/* ============================================
   Base-up Corporate Site v02 - style.css
   360px mobile-first
   ============================================ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  --navy:#1a2744;--navy-deep:#0f1a2e;--navy-light:#2a3d5c;
  --gold:#b8993e;--gold-light:#d4b963;--gold-pale:#f5ecd5;
  --white:#ffffff;--gray-50:#f8f9fa;--gray-100:#f0f1f3;--gray-200:#e2e4e8;--gray-400:#9a9ea6;--gray-600:#5c6170;--gray-800:#2d3038;
  --text-primary:#1a2744;--text-secondary:#5c6170;--text-on-dark:#ffffff;--text-on-dark-sub:rgba(255,255,255,0.7);
  --font-heading:"Noto Serif JP","Georgia",serif;
  --font-body:"Noto Sans JP","Hiragino Sans",sans-serif;
  --font-en:"Cormorant Garamond","Georgia",serif;
  --section-padding:64px 20px;
  /* Domain Colors */
  --c-living:#2B8BBE;--c-family:#E8637A;--c-education:#4CAF93;
  --c-career:#6C63FF;--c-care:#F29B4B;--c-asset:#3D8B6E;
  --c-senior:#8B6DB0;--c-business:#3A7CA5;
}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--navy-deep);}
body{font-family:var(--font-body);color:var(--text-primary);background:var(--white);line-height:1.8;overflow-x:hidden;min-width:360px;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}

/* --- Header --- */
.site-header{position:fixed;top:0;left:0;width:100%;z-index:100;background:rgba(26,39,68,0.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 16px;}
.header-logo{display:flex;align-items:center;gap:8px;}
.header-logo img{height:28px;width:auto;}
.header-desktop-nav{display:none;}
.hamburger{width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;}
.hamburger span{display:block;width:22px;height:2px;background:var(--white);transition:all 0.3s;border-radius:1px;}
.hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.is-open span:nth-child(2){opacity:0;}
.hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:98;opacity:0;visibility:hidden;transition:all 0.3s;}
.nav-overlay.is-open{opacity:1;visibility:visible;}
.mobile-nav{position:fixed;top:0;right:-100%;width:85%;max-width:320px;height:100dvh;background:var(--navy-deep);z-index:99;transition:right 0.4s cubic-bezier(0.16,1,0.3,1);padding:80px 32px 40px;overflow-y:auto;}
.mobile-nav.is-open{right:0;}
.mobile-nav-list a{display:block;padding:14px 0;font-size:15px;color:var(--white);border-bottom:1px solid rgba(255,255,255,0.08);transition:color 0.2s;}
.mobile-nav-list a:hover{color:var(--gold-light);}
.nav-en-label{font-family:var(--font-en);font-size:14px;color:var(--gold);display:block;margin-bottom:2px;letter-spacing:0.1em;}

/* --- Hero (TOP) --- */
.hero{position:relative;height:100dvh;min-height:600px;max-height:900px;background:var(--navy-deep);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,var(--navy-deep) 0%,var(--navy) 50%,var(--navy-light) 100%);}
.hero-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(184,153,62,0.08) 0%,transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(184,153,62,0.05) 0%,transparent 50%);}
.hero-lines{position:absolute;inset:0;overflow:hidden;opacity:0.06;}
.hero-lines::before,.hero-lines::after{content:'';position:absolute;border:1px solid var(--gold);}
.hero-lines::before{width:300px;height:300px;top:-80px;right:-80px;transform:rotate(30deg);}
.hero-lines::after{width:200px;height:200px;bottom:60px;left:-60px;transform:rotate(15deg);}
.hero-content{position:relative;z-index:2;text-align:center;padding:0 16px;}
.hero-tagline-en{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.2em;margin-bottom:20px;opacity:0;transform:translateY(20px);animation:fadeUp 0.8s 0.3s forwards;}
.hero-tagline{font-family:var(--font-heading);font-size:clamp(26px, 7vw, 44px);font-weight:500;color:var(--white);line-height:1.7;letter-spacing:0.02em;opacity:0;transform:translateY(20px);animation:fadeUp 0.8s 0.6s forwards;}
.hero-sub{font-size:15px;color:var(--text-on-dark-sub);margin-top:24px;line-height:1.8;opacity:0;transform:translateY(20px);animation:fadeUp 0.8s 0.9s forwards;}
.hero-scroll{position:absolute;bottom:32px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:fadeUp 0.8s 1.2s forwards;}
.hero-scroll span{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.15em;padding-left:0.15em;}
.hero-scroll::after{content:'';width:1px;height:40px;background:var(--gold);animation:scrollLine 1.5s ease-in-out infinite;}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}50.01%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}

/* --- Page Hero (下層) --- */
.page-hero{background:var(--navy);padding:80px 20px 40px;text-align:center;}
.page-hero-en{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.2em;margin-bottom:8px;}
.page-hero-title{font-family:var(--font-heading);font-size:24px;font-weight:500;color:var(--white);line-height:1.5;}

/* --- Breadcrumb --- */
.breadcrumb{background:var(--gray-50);padding:12px 20px;font-size:14px;color:var(--gray-400);}
.breadcrumb a{color:var(--text-secondary);}
.bc-sep{margin:0 6px;color:var(--gray-400);}

/* --- Section Common --- */
.section{padding:var(--section-padding);}
.section--dark{background:var(--navy);color:var(--white);}
.section--gray{background:var(--gray-50);}
.section--gold-accent{background:linear-gradient(180deg,var(--white) 0%,var(--gold-pale) 100%);}
.container{width:100%;max-width:360px;margin:0 auto;padding:0;}

/* --- Brand Movie --- */
.section--movie{background:var(--navy);padding:56px 20px 48px;}
.section--movie .section-title{color:var(--white);}
.movie-wrap{margin-top:24px;}
.movie-player{position:relative;width:100%;padding-bottom:56.25%;border-radius:8px;overflow:hidden;background:#000;box-shadow:0 8px 32px rgba(0,0,0,0.4);}
.movie-player iframe{position:absolute;top:0;left:0;width:100%;height:100%;}

/* --- Commitment Cards (business.html) --- */
.commit-cards{display:flex;flex-direction:column;gap:20px;margin-top:8px;}
.commit-card{background:var(--white);border-radius:8px;padding:24px 20px;border-left:3px solid var(--gold);box-shadow:0 2px 12px rgba(0,0,0,0.04);}
.commit-card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.commit-card-icon{width:36px;height:36px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;color:var(--gold-light);flex-shrink:0;}
.commit-card-num{font-family:var(--font-en);font-size:28px;font-weight:300;color:var(--gold);}
.commit-card-title{font-family:var(--font-heading);font-size:16px;font-weight:500;line-height:1.6;margin-bottom:10px;}
.commit-card-text{font-size:15px;color:var(--text-secondary);line-height:1.9;}

/* --- Trust Numbers (business.html) --- */
.trust-numbers{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px;}
.trust-num-card{background:var(--navy);border-radius:8px;padding:24px 16px;text-align:center;}
.trust-num-value{font-family:var(--font-en);font-size:36px;font-weight:300;color:var(--white);line-height:1.2;}
.trust-num-unit{font-size:16px;font-weight:400;color:var(--gold-light);}
.trust-num-label{font-size:14px;color:var(--text-on-dark-sub);margin-top:8px;line-height:1.5;}
.trust-notes{margin-top:16px;padding:16px;background:var(--gray-50);border-radius:6px;}
.trust-notes p{font-size:14px;color:var(--gray-600);line-height:1.7;margin-bottom:4px;}
.trust-notes p:last-child{margin-bottom:0;}

/* --- Vision Domain List (business.html) --- */
.vision-domain-list{display:flex;flex-direction:column;gap:16px;}
.vision-domain{display:flex;align-items:center;gap:14px;padding:16px;background:rgba(255,255,255,0.04);border-radius:8px;border-left:3px solid var(--gold);}
.vision-domain-icon{font-size:20px;flex-shrink:0;}
.vision-domain-name{font-size:15px;color:var(--white);font-weight:500;}
.vision-domain-sub{font-size:14px;color:var(--text-on-dark-sub);}
.vision-domain--living{border-left-color:var(--c-living);}
.vision-domain--family{border-left-color:var(--c-family);}
.vision-domain--education{border-left-color:var(--c-education);}
.vision-domain--career{border-left-color:var(--c-career);}
.vision-domain--care{border-left-color:var(--c-care);}
.vision-domain--asset{border-left-color:var(--c-asset);}
.vision-domain--senior{border-left-color:var(--c-senior);}
.vision-domain--business{border-left-color:var(--c-business);}

.section-header{text-align:center;margin-bottom:40px;}
.section-en{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:8px;}
.section--dark .section-en{color:var(--gold-light);}
.section-title{font-family:var(--font-heading);font-size:22px;font-weight:500;line-height:1.6;letter-spacing:0.05em;}
.section-lead{font-size:15px;color:var(--text-secondary);margin-top:16px;line-height:1.8;}
.section--dark .section-lead{color:var(--text-on-dark-sub);}
.gold-line{width:40px;height:2px;background:var(--gold);margin:16px auto 0;}

/* --- Philosophy / MVV --- */
.philosophy-statement{font-family:var(--font-heading);font-size:18px;font-weight:400;line-height:2;text-align:center;letter-spacing:0.05em;margin-bottom:32px;}
.philosophy-compact-text{font-size:15px;color:var(--text-secondary);text-align:center;line-height:1.9;margin-bottom:28px;}

/* MVV Detail (legacy) */
.mvv-detail-body p{margin-bottom:16px;}

/* ============================================
   MVV Page — Redesign v06
   ============================================ */

/* --- MVV Hero (没入型) --- */
.mvv-hero{position:relative;min-height:85dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:56px 0 0;}
.mvv-hero-bg{position:absolute;inset:0;background:linear-gradient(160deg,var(--navy-deep) 0%,var(--navy) 40%,#1e3050 100%);}
.mvv-hero-bg::before{content:'';position:absolute;inset:0;background:
  radial-gradient(ellipse at 50% 30%,rgba(184,153,62,0.06) 0%,transparent 60%),
  radial-gradient(ellipse at 20% 70%,rgba(184,153,62,0.04) 0%,transparent 50%);}
.mvv-hero-bg::after{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:80px;background:linear-gradient(to bottom,transparent,var(--gold));opacity:0.3;}
.mvv-hero-inner{position:relative;z-index:1;text-align:center;padding:0 24px;}
.mvv-hero-en{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.25em;margin-bottom:32px;opacity:0;animation:fadeUp 0.8s 0.2s forwards;}
.mvv-hero-statement{font-family:var(--font-heading);font-size:28px;font-weight:400;color:var(--white);line-height:1.9;letter-spacing:0.12em;opacity:0;animation:fadeUp 0.8s 0.5s forwards;}
.mvv-hero-line{width:48px;height:1px;background:var(--gold);margin:32px auto;opacity:0;animation:fadeUp 0.6s 0.8s forwards;}
.mvv-hero-sub{font-size:15px;color:var(--text-on-dark-sub);line-height:2;opacity:0;animation:fadeUp 0.8s 1.0s forwards;}
.mvv-hero-scroll{position:absolute;bottom:28px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:fadeUp 0.8s 1.3s forwards;}
.mvv-hero-scroll span{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.15em;padding-left:0.15em;}
.mvv-hero-scroll::after{content:'';width:1px;height:36px;background:var(--gold);animation:scrollLine 1.5s ease-in-out infinite;}

/* --- MVV Lead-in --- */
.mvv-lead-section{padding:56px 20px 48px;}
.mvv-lead{text-align:center;}
.mvv-lead p{font-family:var(--font-heading);font-size:15px;font-weight:400;line-height:2.2;color:var(--text-primary);margin-bottom:20px;letter-spacing:0.03em;}
.mvv-lead p:last-child{margin-bottom:0;}

/* --- MVV Section Header with Badge --- */
.mvv-section-header{text-align:center;margin-bottom:40px;}
.mvv-badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gold);font-family:var(--font-en);font-size:18px;font-weight:400;color:var(--gold);margin-bottom:16px;letter-spacing:0;}

/* --- MVV Catch Block (Mission/Vision) --- */
.mvv-catch-block{text-align:center;margin-bottom:32px;padding:20px 0;}
.mvv-deco-top,.mvv-deco-bottom{display:block;margin:0 auto;}
.mvv-catch{font-family:var(--font-heading);font-size:20px;font-weight:400;line-height:1.9;letter-spacing:0.06em;color:var(--text-primary);padding:16px 0;}

/* --- MVV Body Text --- */
.mvv-body{font-size:15px;line-height:2.1;color:var(--text-secondary);}
.mvv-body p{margin-bottom:16px;}
.mvv-body p:last-child{margin-bottom:0;}

/* --- MVV Domain Diagram --- */
/* 8 Domains Panel (inside Vision) */
.mvv-domain-panel{margin-top:40px;padding:40px 20px 48px;background:var(--navy);border-radius:12px;text-align:center;}
.mvv-domain-panel-en{font-family:var(--font-en);font-size:14px;color:var(--gold-light);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:12px;}
.mvv-domain-panel-lead{font-size:15px;color:var(--text-on-dark-sub);line-height:1.9;margin-bottom:28px;}
.mvv-domain-diagram{text-align:center;}
.mvv-domain-img{width:100%;max-width:540px;height:auto;display:block;margin:0 auto;}

/* --- MVV Values (3つの約束) --- */
.mvv-values{display:flex;flex-direction:column;gap:20px;}
.mvv-value-card{position:relative;background:var(--white);border-radius:10px;padding:28px 24px 24px;box-shadow:0 2px 16px rgba(0,0,0,0.05);overflow:hidden;}
.mvv-value-accent{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-light));}
.mvv-value-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.mvv-value-num{font-family:var(--font-en);font-size:32px;font-weight:300;color:var(--gold);line-height:1;}
.mvv-value-icon{flex-shrink:0;}
.mvv-value-title{font-family:var(--font-heading);font-size:16px;font-weight:500;line-height:1.7;margin-bottom:14px;color:var(--text-primary);}
.mvv-value-text{font-size:15px;color:var(--text-secondary);line-height:1.95;}
.mvv-value-keyword{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.15em;margin-top:16px;text-align:right;opacity:0.6;}

/* --- MVV Closing --- */
.mvv-closing{background:var(--navy);padding:72px 20px 80px;text-align:center;}
.mvv-closing-inner{}
.mvv-closing-en{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.2em;margin-bottom:20px;}
.mvv-closing-text{font-family:var(--font-heading);font-size:22px;font-weight:400;color:var(--white);line-height:1.8;letter-spacing:0.08em;margin-bottom:20px;}
.mvv-closing-sub{font-size:15px;color:var(--text-on-dark-sub);line-height:2;margin-bottom:36px;}
.mvv-closing-links{display:flex;flex-direction:column;align-items:center;gap:12px;}
.mvv-closing-links .btn-more{min-width:240px;justify-content:center;}

/* --- Buttons --- */
.section-more{text-align:center;margin-top:32px;}
.btn-more{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--navy);padding:12px 28px;border:1px solid var(--gray-200);border-radius:40px;transition:all 0.3s;}
.btn-more::after{content:'→';transition:transform 0.3s;}
.btn-more:hover{background:var(--navy);color:var(--white);border-color:var(--navy);}
.btn-more:hover::after{transform:translateX(4px);}
.btn-more--light{color:var(--white);border-color:rgba(255,255,255,0.3);}
.btn-more--light:hover{background:var(--white);color:var(--navy);}

/* --- Text Decoration (可読性向上) --- */
.prose strong,.msg-body strong,.mvv-body strong,.commit-card-text strong,.m-iv-a strong,.purpose-pillar-text strong{color:var(--navy);font-weight:600;}
.section--dark strong,.section--dark .prose strong{color:var(--white);font-weight:600;}
.msg-body strong{border-bottom:2px solid var(--gold-pale);}
.stat-inline{font-family:var(--font-en);font-weight:500;color:var(--navy);font-size:1.15em;}
.section--dark .stat-inline{color:var(--gold-light);}

/* --- Business Domain Cards (TOP) --- */

/* --- Business summary + CTA (index.html) --- */
.biz-links{margin-top:24px;display:flex;flex-direction:column;align-items:center;gap:16px;}
.biz-service-cta{font-size:14px;color:var(--gold);font-weight:500;text-align:center;transition:color 0.2s;}
.biz-service-cta:hover{color:var(--gold-light);}

/* --- 8 Domains Wheel (business.html) --- */

/* --- Business Detail Page --- */
.biz-detail-features{display:flex;flex-direction:column;gap:16px;margin-top:20px;}
.biz-feature{display:flex;gap:14px;align-items:flex-start;padding:16px;background:var(--gray-50);border-radius:8px;}
.biz-feature-num{font-family:var(--font-en);font-size:24px;color:var(--gold);font-weight:300;flex-shrink:0;line-height:1;}
.biz-feature-title{font-size:15px;font-weight:500;margin-bottom:4px;}
.biz-feature-text{font-size:14px;color:var(--text-secondary);line-height:1.7;}
.biz-sites{margin-top:24px;}
.biz-site-link{display:flex;align-items:center;gap:12px;padding:16px;background:var(--navy);border-radius:8px;color:var(--white);margin-bottom:10px;transition:background 0.2s;}
.biz-site-link:hover{background:var(--navy-light);}
.biz-site-link-icon{font-size:20px;}
.biz-site-link-text{flex:1;}
.biz-site-link-name{font-size:14px;font-weight:500;}
.biz-site-link-url{font-family:var(--font-en);font-size:13px;color:var(--text-on-dark-sub);}
.biz-site-link-arrow{font-size:16px;color:var(--gold);}

/* --- Numbers --- */

/* --- Member --- */
.member-lead{font-size:14px;color:var(--text-secondary);text-align:center;margin-bottom:28px;line-height:1.8;}
.member-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.member-thumb{position:relative;border-radius:8px;overflow:hidden;background:var(--white);display:flex;flex-direction:column;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,0.06);border:1px solid var(--gray-100);}
.member-thumb img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top center;display:block;}
.member-thumb-overlay{padding:10px 10px 12px;background:var(--white);}
.member-thumb-name{font-size:14px;color:var(--text-primary);font-weight:500;text-align:center;line-height:1.3;}
.member-thumb-role{font-size:13px;color:var(--text-secondary);text-align:center;display:block;margin-top:3px;line-height:1.3;}
.member-thumb-catch{font-size:13px;color:var(--gold);text-align:center;display:block;margin-top:6px;font-style:italic;line-height:1.4;}

/* --- Member Grid Compact (Other Members in detail pages) --- */
.member-grid--compact{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.member-grid--compact .member-thumb{flex-direction:column;height:auto;aspect-ratio:3/4;box-shadow:none;border:none;background:var(--gray-100);}
.member-grid--compact .member-thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;border-radius:0;}
.member-grid--compact .member-thumb-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(26,39,68,0.88));padding:24px 6px 8px;}
.member-grid--compact .member-thumb-name{font-size:13px;color:var(--white);text-align:center;}
.member-grid--compact .member-thumb-role{font-size:13px;color:var(--text-on-dark-sub);text-align:center;}
.member-grid--compact .member-thumb-catch{display:none;}
.member-count strong{color:var(--navy);font-family:var(--font-en);font-size:20px;}

/* Member Detail */
.member-detail-body h2{font-family:var(--font-heading);font-size:18px;font-weight:500;margin-bottom:16px;}
.member-detail-body p{font-size:14px;line-height:2;color:var(--text-secondary);margin-bottom:16px;}

/* --- History --- */
.history-timeline{position:relative;padding-left:24px;}
.history-timeline::before{content:'';position:absolute;left:4px;top:8px;bottom:8px;width:1px;background:var(--gold);opacity:0.4;}
.history-item{position:relative;padding-bottom:28px;}
.history-item:last-child{padding-bottom:0;}
.history-item::before{content:'';position:absolute;left:-24px;top:8px;width:9px;height:9px;border-radius:50%;background:var(--gold);border:2px solid var(--white);}
.history-year{font-family:var(--font-en);font-size:15px;color:var(--gold);letter-spacing:0.05em;margin-bottom:4px;}
.history-text{font-size:14px;line-height:1.7;}
.history-detail{font-size:14px;color:var(--text-secondary);margin-top:4px;line-height:1.6;}

/* --- Map (company.html) --- */
.map-wrap{border-radius:8px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,0.08);}

/* --- Vision --- */
.vision-statement{font-family:var(--font-heading);font-size:20px;font-weight:400;line-height:1.9;text-align:center;color:var(--white);margin-bottom:24px;}
.vision-desc{font-size:14px;color:var(--text-on-dark-sub);line-height:1.9;text-align:center;}

/* --- News --- */

/* --- Recruit --- */
.recruit-image{width:100%;height:200px;border-radius:12px;overflow:hidden;margin-bottom:24px;background:linear-gradient(135deg,var(--navy),var(--navy-light));display:flex;align-items:center;justify-content:center;}
.recruit-catch{font-family:var(--font-heading);font-size:22px;font-weight:500;line-height:1.7;text-align:center;margin-bottom:20px;}
.recruit-desc{font-size:14px;color:var(--text-secondary);line-height:1.9;text-align:center;margin-bottom:28px;}
.btn-recruit{display:block;width:100%;text-align:center;padding:16px;background:var(--gold);color:var(--white);font-size:15px;font-weight:500;border-radius:8px;transition:background 0.3s;}
.btn-recruit:hover{background:var(--gold-light);}

/* Recruit Detail */
.recruit-section h2{font-family:var(--font-heading);font-size:18px;font-weight:500;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--gray-200);}
.recruit-section p{font-size:14px;line-height:1.9;color:var(--text-secondary);margin-bottom:16px;}
.job-card{background:var(--white);border-radius:12px;padding:24px 20px;box-shadow:0 2px 12px rgba(0,0,0,0.04);margin-bottom:16px;}
.job-card-dept{font-size:14px;color:var(--gold);font-weight:500;margin-bottom:4px;}
.job-card-title{font-size:16px;font-weight:500;margin-bottom:8px;}
.job-card-meta{font-size:14px;color:var(--text-secondary);line-height:1.7;}
.job-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.job-tag{font-size:13px;padding:3px 10px;background:var(--gray-50);border-radius:20px;color:var(--text-secondary);}

/* --- Performance --- */

/* --- Company Info Table --- */
.info-table{width:100%;}
.info-table tr{border-bottom:1px solid var(--gray-200);}
.info-table th{font-size:14px;font-weight:500;color:var(--text-secondary);padding:14px 0;width:90px;vertical-align:top;text-align:left;}
.info-table td{font-size:14px;padding:14px 0 14px 12px;line-height:1.7;}

/* --- Contact Form --- */

/* --- Privacy / Prose --- */
.prose{padding:8px 0;}
.prose h2{font-family:var(--font-heading);font-size:18px;font-weight:500;margin:32px 0 12px;padding-bottom:10px;border-bottom:1px solid var(--gray-200);}
.prose h3{font-size:15px;font-weight:500;margin:24px 0 8px;}
.prose p{font-size:14px;line-height:1.9;color:var(--text-secondary);margin-bottom:12px;}
.prose ul{margin:8px 0 16px 20px;}
.prose li{font-size:14px;line-height:1.8;color:var(--text-secondary);list-style:disc;margin-bottom:4px;}
.prose-intro{text-align:center;margin-bottom:20px;}

/* --- Contact Bar --- */

/* --- Footer --- */
.site-footer{background:var(--navy-deep);color:var(--white);padding:48px 20px 24px;}
.footer-logo{display:flex;align-items:center;gap:8px;margin-bottom:16px;}
.footer-logo img{height:32px;}
.footer-company-info{font-size:14px;color:var(--text-on-dark-sub);line-height:1.8;margin-bottom:28px;}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-bottom:32px;}
.footer-nav a{font-size:14px;color:var(--text-on-dark-sub);padding:4px 0;transition:color 0.2s;}
.footer-nav a:hover{color:var(--gold-light);}
.footer-divider{height:1px;background:rgba(255,255,255,0.08);margin:24px 0;}
.footer-sites{margin-bottom:24px;padding-top:8px;}
.footer-sites-label{font-size:13px;color:var(--gray-400);margin-bottom:8px;letter-spacing:0.05em;}
.footer-sites a{display:inline-block;font-size:14px;color:var(--gold-light);margin-right:20px;padding:4px 0;transition:opacity 0.2s;}
.footer-sites a:hover{opacity:0.7;}
.footer-bottom{text-align:center;}
.footer-copyright{font-family:var(--font-en);font-size:13px;color:var(--gray-400);}

/* --- Hero with photo bg --- */
.hero-slideshow{position:absolute;inset:0;}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease-in-out;}
.hero-slide--active{opacity:1;}
.hero-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-slide:nth-child(1) img{animation:panZoom1 8s ease-out forwards;}
.hero-slide:nth-child(2) img{animation:panZoom2 8s ease-out forwards;}
.hero-slide:nth-child(3) img{animation:panZoom3 8s ease-out forwards;}
.hero-slide:nth-child(4) img{animation:panZoom4 8s ease-out forwards;}
.hero-slide:nth-child(5) img{animation:panZoom5 8s ease-out forwards;}
@keyframes panZoom1{0%{transform:scale(1.02) translate(0,0);filter:brightness(0.88);}100%{transform:scale(1.12) translate(-1.5%,-1%);filter:brightness(1);}}
@keyframes panZoom2{0%{transform:scale(1.02) translate(0,0);filter:brightness(0.88);}100%{transform:scale(1.1) translate(2%,-0.5%);filter:brightness(1);}}
@keyframes panZoom3{0%{transform:scale(1.02) translate(0,0);filter:brightness(0.88);}100%{transform:scale(1.14) translate(-1%,1.5%);filter:brightness(1);}}
@keyframes panZoom4{0%{transform:scale(1.02) translate(0,0);filter:brightness(0.88);}100%{transform:scale(1.1) translate(1.5%,1%);filter:brightness(1);}}
@keyframes panZoom5{0%{transform:scale(1.02) translate(0,0);filter:brightness(0.88);}100%{transform:scale(1.12) translate(-2%,-0.5%);filter:brightness(1);}}
.hero-bg-overlay{position:absolute;inset:0;background:rgba(15,26,46,0.7);z-index:1;}

/* --- Purpose Pillars --- */
.purpose-pillars{display:flex;flex-direction:column;gap:20px;}
.purpose-pillar{background:var(--white);border-radius:12px;padding:24px 20px;box-shadow:0 2px 12px rgba(0,0,0,0.04);text-align:center;}
.section--gray .purpose-pillar{background:var(--white);}
.purpose-pillar-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--white);margin:0 auto 12px;}
.purpose-pillar-en{font-family:var(--font-en);font-size:14px;color:var(--gray-400);letter-spacing:0.1em;margin-bottom:6px;}
.purpose-pillar-title{font-family:var(--font-heading);font-size:16px;font-weight:500;line-height:1.6;margin-bottom:8px;}
.purpose-pillar-text{font-size:14px;color:var(--text-secondary);line-height:1.8;}

/* --- Review blocks --- */

/* --- Animations --- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}

/* --- Misc --- */
.back-link{display:block;text-align:center;font-size:14px;color:var(--text-secondary);padding:16px 20px;}
.back-link::before{content:'← ';}
.cta-box{background:var(--gold-pale);border-radius:12px;padding:28px 20px;text-align:center;margin:24px auto 0;max-width:calc(100% - 40px);}
.cta-box-title{font-family:var(--font-heading);font-size:16px;margin-bottom:12px;}
.cta-box-text{font-size:14px;color:var(--text-secondary);margin-bottom:16px;line-height:1.7;}

/* --- Realestate subtle banner (member detail pages) --- */
.m-realestate-banner{margin:24px auto 0;max-width:calc(100% - 40px);padding:20px;background:var(--navy);border-radius:12px;text-align:center;position:relative;overflow:hidden;}
.m-realestate-banner::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-light));}
.m-realestate-banner-label{font-size:14px;color:var(--gold);letter-spacing:0.06em;margin-bottom:6px;}
.m-realestate-banner-title{font-family:var(--font-heading);font-size:16px;color:var(--white);font-weight:400;line-height:1.7;margin-bottom:12px;}
.m-realestate-banner-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--gold-light);text-decoration:none;padding:8px 20px;border:1px solid rgba(184,153,62,0.3);border-radius:8px;transition:all 0.2s;}
.m-realestate-banner-link:hover{background:rgba(184,153,62,0.1);border-color:var(--gold);}

/* --- Interview --- */

/* ===================================================
   Magazine-style Member Detail (v09+)
   =================================================== */

/* --- Member Hero (full-width catch) --- */
.m-hero{background:var(--navy);padding:0;position:relative;overflow:hidden;}
.m-hero-photo{width:100%;aspect-ratio:3/4;max-height:480px;object-fit:cover;object-position:top center;display:block;}
.m-hero-overlay{position:absolute;bottom:0;left:0;right:0;padding:32px 20px 28px;background:linear-gradient(transparent,rgba(26,39,68,0.92) 40%);}
.m-hero-role{font-size:14px;color:var(--gold);margin-bottom:4px;}
.m-hero-name{font-family:var(--font-heading);font-size:28px;color:var(--white);font-weight:500;letter-spacing:0.04em;}
.m-hero-name-en{font-family:var(--font-en);font-size:14px;color:rgba(255,255,255,0.5);margin-top:4px;letter-spacing:0.08em;}

/* --- Catch copy bar --- */
.m-catch{background:var(--gold-pale);padding:28px 20px;text-align:center;}
.m-catch-text{font-family:var(--font-heading);font-size:18px;font-weight:400;line-height:1.8;color:var(--navy);letter-spacing:0.04em;}

/* --- Profile card (horizontal items) --- */
.m-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--gray-200);border:1px solid var(--gray-200);border-radius:12px;overflow:hidden;margin-top:24px;}
.m-profile-item{background:var(--white);padding:16px;text-align:center;}
.m-profile-label{font-size:14px;color:var(--gold);font-weight:500;margin-bottom:4px;letter-spacing:0.05em;}
.m-profile-value{font-size:14px;color:var(--text-primary);line-height:1.5;}
.m-profile-bio{font-size:15px;line-height:2;color:var(--text-secondary);margin-top:20px;padding:16px 16px 16px 20px;background:var(--gray-50);border-radius:8px;border-left:3px solid var(--gold);}

/* --- Numbers highlight --- */
.m-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px;}
.m-number-card{text-align:center;padding:20px 8px;background:var(--white);border-radius:12px;border:1px solid var(--gray-100);}
.m-number-value{font-family:var(--font-en);font-size:28px;font-weight:300;color:var(--navy);line-height:1.2;}
.m-number-unit{font-size:14px;color:var(--navy);}
.m-number-label{font-size:14px;color:var(--text-secondary);margin-top:6px;line-height:1.4;}

/* --- Magazine interview (photo + text blocks) --- */
.m-iv-lead{font-family:var(--font-heading);font-size:16px;text-align:center;color:var(--text-secondary);margin-bottom:32px;line-height:1.8;}
.m-iv-block{margin-bottom:40px;background:var(--white);border-radius:12px;padding:20px;border:1px solid var(--gray-100);}
.section--gray .m-iv-block{background:var(--white);}
.m-iv-photo{aspect-ratio:16/9;background:var(--gray-100);margin:-20px -20px 0;width:calc(100% + 40px);border-radius:12px 12px 0 0;overflow:hidden;}
.m-iv-q{font-family:var(--font-heading);font-size:17px;font-weight:500;color:var(--navy);margin:16px 0 12px;line-height:1.6;padding-left:32px;position:relative;}
.m-iv-q::before{content:'Q';position:absolute;left:0;top:50%;transform:translateY(-50%);width:24px;height:24px;background:var(--gold);color:var(--white);font-family:var(--font-en);font-size:13px;font-weight:600;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;}
.m-iv-a{font-size:15px;line-height:2;color:var(--text-secondary);padding-left:12px;border-left:2px solid var(--gold-pale);}
.m-iv-pullquote{font-family:var(--font-heading);font-size:17px;font-weight:400;color:var(--navy);line-height:1.9;padding:28px 24px;margin:8px 0 40px;background:var(--gold-pale);border-radius:12px;text-align:center;letter-spacing:0.02em;position:relative;}
.m-iv-pullquote::before{content:'\201C';font-family:var(--font-en);font-size:48px;color:var(--gold);opacity:0.4;position:absolute;top:4px;left:16px;line-height:1;}

/* --- Schedule timeline --- */
.m-schedule{position:relative;padding-left:20px;}
.m-schedule::before{content:'';position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:var(--gold);opacity:0.4;}
.m-schedule-item{position:relative;padding:12px 0 12px 20px;display:flex;gap:12px;align-items:flex-start;}
.m-schedule-item::before{content:'';position:absolute;left:-18px;top:18px;width:9px;height:9px;border-radius:50%;background:var(--gold);border:2px solid var(--white);box-shadow:0 0 0 1px var(--gold);}
.m-schedule-time{font-family:var(--font-en);font-size:14px;color:var(--gold);font-weight:500;min-width:52px;flex-shrink:0;padding-top:1px;}
.m-schedule-text{font-size:14px;color:var(--text-primary);line-height:1.6;}
.m-schedule-note{font-size:14px;color:var(--text-secondary);display:block;margin-top:2px;}

/* --- Quick Q&A (card style) --- */
.m-qa-grid{display:grid;gap:12px;margin-top:20px;}
.m-qa-card{background:var(--white);border-radius:12px;padding:20px;border:1px solid var(--gray-100);position:relative;overflow:hidden;}
.m-qa-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold);}
.m-qa-q{font-size:15px;color:var(--gold);font-weight:500;margin-bottom:8px;padding-left:28px;position:relative;}
.m-qa-q::before{content:'Q';position:absolute;left:0;top:50%;transform:translateY(-50%);width:20px;height:20px;background:var(--gold);color:var(--white);font-family:var(--font-en);font-size:12px;font-weight:600;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;}
.m-qa-a{font-size:15px;line-height:1.7;color:var(--text-primary);padding-left:28px;}

/* --- Peer comments --- */
.m-peer{margin-top:20px;}
.m-peer-card{background:var(--white);border-radius:12px;padding:24px 20px 20px;border:1px solid var(--gray-100);margin-bottom:12px;position:relative;overflow:hidden;}
.m-peer-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-light));}
.m-peer-card::after{content:'\201C';position:absolute;top:12px;right:16px;font-family:var(--font-en);font-size:40px;color:var(--gold);opacity:0.15;line-height:1;}
.m-peer-text{font-size:15px;line-height:1.9;color:var(--text-secondary);margin-bottom:12px;}
.m-peer-text.is-collapsed{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;}
.m-peer-toggle{display:inline-block;font-size:14px;color:var(--gold);cursor:pointer;margin-bottom:12px;padding:4px 0;border:none;background:none;font-family:var(--font-body);}
.m-peer-toggle:hover{text-decoration:underline;}
.m-peer-author{display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--gray-100);}
.m-peer-avatar{width:40px;height:40px;border-radius:50%;background:var(--gray-200);overflow:hidden;flex-shrink:0;border:2px solid var(--gold-pale);}
.m-peer-avatar img{width:100%;height:100%;object-fit:cover;}
.m-peer-name{font-size:15px;font-weight:500;color:var(--text-primary);}
.m-peer-role{font-size:14px;color:var(--text-secondary);}

/* ============================================
   Message Page — 代表メッセージ
   ============================================ */
.msg-hero{background:var(--navy);overflow:hidden;}
.msg-hero-photo{width:100%;aspect-ratio:4/3;max-height:400px;overflow:hidden;}
.msg-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;}
.msg-hero-text{padding:32px 24px 40px;text-align:center;}
.msg-hero-en{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.15em;margin-bottom:16px;}
.msg-hero-title{font-family:var(--font-heading);font-size:24px;color:var(--white);font-weight:500;line-height:1.7;letter-spacing:0.04em;}
.msg-hero-author{margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,0.1);}
.msg-hero-role{font-size:14px;color:var(--gold);margin-bottom:4px;}
.msg-hero-name{font-family:var(--font-heading);font-size:18px;color:var(--white);font-weight:500;}
.msg-hero-name-en{font-family:var(--font-en);font-size:13px;color:rgba(255,255,255,0.4);margin-top:4px;letter-spacing:0.08em;}

.msg-section{padding-top:48px;padding-bottom:48px;}
.msg-block{max-width:640px;margin:0 auto;}
.msg-chapter-en{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.15em;margin-bottom:8px;}
.msg-chapter-title{font-family:var(--font-heading);font-size:20px;font-weight:500;color:var(--navy);line-height:1.6;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--gold-pale);}
.msg-body p{font-size:15px;line-height:2;color:var(--text-secondary);margin-bottom:20px;}
.msg-body p:last-child{margin-bottom:0;}

.msg-pullquote-section{padding:48px 24px;text-align:center;background:var(--gold-pale);}
.msg-pullquote-section.section--dark{background:var(--navy);}
.msg-pullquote{font-family:var(--font-heading);font-size:20px;font-weight:400;line-height:1.8;color:var(--navy);letter-spacing:0.04em;}
.msg-pullquote-section.section--dark .msg-pullquote{color:var(--white);}

.msg-closing{background:var(--navy);padding:56px 24px 64px;text-align:center;}
.msg-closing-inner{}
.msg-closing-statement{font-family:var(--font-heading);font-size:20px;color:var(--white);font-weight:400;line-height:1.8;letter-spacing:0.04em;margin-bottom:32px;}
.msg-closing-sign{padding-top:24px;border-top:1px solid rgba(255,255,255,0.1);}
.msg-closing-company{font-size:14px;color:rgba(255,255,255,0.5);margin-bottom:4px;}
.msg-closing-role{font-size:14px;color:var(--gold);margin-bottom:4px;}
.msg-closing-name{font-family:var(--font-heading);font-size:20px;color:var(--white);font-weight:500;letter-spacing:0.04em;}

/* --- Business top cards (index.html) --- */
.biz-top-catch{font-family:var(--font-heading);font-size:clamp(20px,5vw,28px);font-weight:400;color:var(--white);line-height:1.8;text-align:center;letter-spacing:0.04em;}
.biz-top-cards{display:grid;gap:20px;margin-top:36px;}
.biz-top-card{background:rgba(255,255,255,0.06);border:1px solid rgba(184,153,62,0.2);border-radius:12px;padding:24px;}
.biz-top-card-en{font-family:var(--font-en);font-size:14px;color:var(--gold);letter-spacing:0.1em;margin-bottom:8px;}
.biz-top-card-title{font-size:17px;font-weight:500;color:var(--white);margin-bottom:12px;}
.biz-top-card-text{font-size:15px;color:var(--text-on-dark-sub);line-height:1.9;}
.biz-top-numbers{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:16px;}
.biz-top-num-value{font-family:var(--font-en);font-size:32px;font-weight:300;color:var(--gold-light);line-height:1.2;text-align:center;}
.biz-top-num-unit{font-size:16px;}
.biz-top-num-label{font-size:14px;color:var(--text-on-dark-sub);margin-top:4px;text-align:center;}

/* --- Cookie Banner --- */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:900;background:var(--navy);border-top:1px solid rgba(184,153,62,0.3);padding:16px 20px;transform:translateY(100%);transition:transform 0.4s cubic-bezier(0.16,1,0.3,1);display:none;}
.cookie-banner.is-visible{transform:translateY(0);display:block;}
.cookie-banner-inner{max-width:960px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.cookie-banner-text{font-size:13px;color:var(--text-on-dark-sub);line-height:1.7;}
.cookie-banner-text a{color:var(--gold-light);text-decoration:underline;text-underline-offset:2px;}
.cookie-banner-actions{display:flex;gap:10px;flex-shrink:0;}
.cookie-banner-btn{font-size:13px;font-weight:500;padding:8px 20px;border-radius:20px;border:none;cursor:pointer;transition:all 0.2s;line-height:1.4;}
.cookie-banner-btn--accept{background:var(--gold);color:var(--navy);}
.cookie-banner-btn--accept:hover{background:var(--gold-light);}
.cookie-banner-btn--decline{background:transparent;color:var(--text-on-dark-sub);border:1px solid rgba(255,255,255,0.2);}
.cookie-banner-btn--decline:hover{border-color:rgba(255,255,255,0.4);color:var(--white);}
