/* リベラ株式会社 コーポレートサイト*/

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: #F7FBFD;
  color: #26333D;
  font-family: "Yu Gothic Medium","Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  font-weight: 400;
  line-height: 2;
  letter-spacing: .04em;
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
}

::selection { background: #BEDCEA; }

a { color: #3D7096; }
a:hover { color: #669fcb; }

/* グローバルナビ ホバー */
[data-nav] a:hover { color: #3D7096; border-bottom-color: #BEDCEA; }

/* 採用リスト ホバー */
#careers ul a:hover { background: rgba(228,241,247,.65); }

/* 波紋モチーフ */
@keyframes lb-ripple {
  0%   { transform: translate(-50%,-50%) scale(.04); opacity: 0; }
  12%  { opacity: 1; }
  100% { transform: translate(-50%,-50%) scale(1); opacity: 0; }
}

/* スクロールキュー */
@keyframes lb-cue {
  0%,100% { opacity: .2; }
  50%     { opacity: 1; }
}

/* スクロール連動フェードイン（JSで data-rv 要素に付与） */
.lb-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 1.1s ease, transform 1.1s ease;
}
.lb-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* レスポンシブ */
@media (max-width: 780px) { [data-nav] { display: none !important; } }
@media (max-width: 700px) { [data-2col] { grid-template-columns: 1fr !important; } }
@media (max-height: 600px) { [data-scrollcue] { display: none !important; } }

/* ポリシーページ 箇条書きマーカー色 */
.lb-policy li::marker { color: #7FAECB; }

/* モーション低減設定を尊重 */
@media (prefers-reduced-motion: reduce) {
  [data-ripple] {
    animation: none !important;
    opacity: .14 !important;
    transform: translate(-50%,-50%) scale(.7) !important;
  }
  [data-cue] { animation: none !important; }
  .lb-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* ==== 自動生成: 旧インラインスタイル (index.html / privacy.html / security.html) ==== */
.header { position:fixed; top:0; left:0; right:0; z-index:50; background:rgba(247,251,253,.85); backdrop-filter:blur(10px); border-bottom:1px solid rgba(190,220,234,.5); }
.header-inner { max-width:1240px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:15px clamp(20px,4vw,44px); }
.header-logo-link { display:inline-flex; flex-direction:column; gap:3px; text-decoration:none; width:fit-content; }
.header-logo-svg { height:34px; width:auto; display:block; }
.global-nav { display:flex; gap:clamp(16px,2.6vw,34px); }
.global-nav-link { text-decoration:none; color:#26333D; font-size:11.5px; letter-spacing:.2em; font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:500; padding:4px 0; border-bottom:1px solid transparent; transition:color .3s,border-color .3s; }
.hero { position:relative; min-height:94vh; display:flex; align-items:center; overflow:hidden; background:linear-gradient(175deg,#FDFEFF 0%,#F7FBFD 42%,#E4F1F7 80%,#D8EAF3 100%); }
.hero-bg-ripples { position:absolute; inset:0; pointer-events:none; }
.ripple-circle-01 { position:absolute; left:70%; top:56%; width:min(62vw,680px); height:min(62vw,680px); border-radius:50%; border:1.5px solid rgba(61,112,150,.42); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 11s cubic-bezier(.22,.61,.36,1) infinite; animation-play-state:running; }
.ripple-circle-02 { position:absolute; left:70%; top:56%; width:min(62vw,680px); height:min(62vw,680px); border-radius:50%; border:1.5px solid rgba(61,112,150,.42); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 11s cubic-bezier(.22,.61,.36,1) infinite; animation-delay:3.6s; animation-play-state:running; }
.ripple-circle-03 { position:absolute; left:70%; top:56%; width:min(62vw,680px); height:min(62vw,680px); border-radius:50%; border:1.5px solid rgba(61,112,150,.42); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 11s cubic-bezier(.22,.61,.36,1) infinite; animation-delay:7.2s; animation-play-state:running; }
.ripple-circle-04 { position:absolute; left:22%; top:84%; width:min(34vw,360px); height:min(34vw,360px); border-radius:50%; border:1.5px solid rgba(127,174,203,.45); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 14s cubic-bezier(.22,.61,.36,1) infinite; animation-delay:1.8s; animation-play-state:running; }
.ripple-circle-05 { position:absolute; left:22%; top:84%; width:min(34vw,360px); height:min(34vw,360px); border-radius:50%; border:1.5px solid rgba(127,174,203,.45); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 14s cubic-bezier(.22,.61,.36,1) infinite; animation-delay:8.8s; animation-play-state:running; }
.hero-content { position:relative; z-index:2; max-width:1120px; margin:0 auto; width:100%; padding:96px clamp(24px,5vw,56px) 130px; }
.hero-subcaption { display:block; margin-bottom:30px; font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:500; letter-spacing:.32em; font-size:11px; color:#3D7096; text-transform:uppercase; }
.hero-title { margin:0 0 14px; font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; font-weight:500; color:#1E3A50; font-size:clamp(36px,5.8vw,60px); letter-spacing:.14em; line-height:1.7; }
.hero-title-en { font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:500; color:#7FAECB; font-size:clamp(12px,1.5vw,15px); letter-spacing:.3em; margin-bottom:clamp(36px,6vh,56px); }
.hero-description { margin:0; max-width:560px; font-size:clamp(13px,1.5vw,15px); color:#42525E; }
.hero-scroll { position:absolute; bottom:32px; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:10px; color:#3D7096; font-size:10px; letter-spacing:.34em; font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; }
.hero-scroll-icon { width:1px; height:46px; background:linear-gradient(#3D7096,rgba(61,112,150,0)); animation:lb-cue 2.6s ease-in-out infinite; }
.section-philosophy { position:relative; background:#FFFFFF; padding:clamp(100px,15vh,180px) 0; overflow:hidden; }
.bg-keyword { position:absolute; top:50%; right:clamp(4%,9vw,13%); transform:translateY(-50%); writing-mode:vertical-rl; font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; font-size:clamp(96px,15vw,180px); letter-spacing:.3em; color:rgba(61,112,150,0.055); user-select:none; pointer-events:none; white-space:nowrap; line-height:1; }
.section-container { max-width:1120px; margin:0 auto; padding:0 clamp(24px,5vw,56px); }
.section-header { margin-bottom:clamp(44px,7vh,72px); }
.section-category { display:block; margin-bottom:18px; font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:500; letter-spacing:.32em; font-size:11px; color:#3D7096; text-transform:uppercase; }
.section-title { margin:0; font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; font-weight:500; color:#1E3A50; font-size:clamp(25px,3.4vw,37px); letter-spacing:.12em; line-height:1.8; }
.philosophy-body { max-width:620px; font-size:15px; color:#3B4B57; display:grid; gap:1.9em; }
.text-paragraph { margin:0; }
.section-business { background:linear-gradient(#F7FBFD,#E4F1F7); padding:clamp(100px,15vh,180px) 0; }
.section-header-left { margin-bottom:clamp(28px,4vh,44px); }
.business-lead { max-width:620px; font-size:15px; color:#3B4B57; margin-bottom:clamp(56px,9vh,96px); }
.business-grid { position:relative; }
.business-grid-bg { position:absolute; left:11px; top:16px; bottom:16px; width:1px; background:linear-gradient(#BEDCEA,#7FAECB); }
.business-card { position:relative; padding:0 0 clamp(56px,9vh,88px) clamp(52px,7vw,88px); }
.card-badge-icon-01 { position:absolute; left:5px; top:12px; width:13px; height:13px; border-radius:50%; background:#3D7096; border:1.5px solid #3D7096; box-shadow:0 0 0 6px rgba(61,112,150,.13); }
.card-sublabel { display:inline-block; margin-bottom:8px; font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; color:#7FAECB; font-size:14px; letter-spacing:.5em; }
.card-title { margin:0 0 4px; font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; font-weight:500; color:#1E3A50; font-size:clamp(20px,2.4vw,25px); letter-spacing:.1em; line-height:1.8; }
.badge-focus { display:inline-block; vertical-align:3px; margin-left:14px; font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:600; font-size:9px; letter-spacing:.3em; color:#FFFFFF; background:#3D7096; border-radius:2px; padding:3px 8px 2px 11px; }
.card-title-en { display:block; margin-bottom:16px; font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:500; letter-spacing:.26em; font-size:11px; color:#7FAECB; text-transform:uppercase; }
.card-description { margin:0; max-width:600px; color:#3B4B57; }
.card-badge-icon-02 { position:absolute; left:5px; top:12px; width:13px; height:13px; border-radius:50%; background:#F7FBFD; border:1.5px solid #3D7096; }
.business-card-wide { position:relative; padding:0 0 0 clamp(52px,7vw,88px); }
.section-deep { position:relative; overflow:hidden; background:radial-gradient(120% 90% at 50% -20%,#2C5474 0%,#1E3A50 55%,#14293B 100%); color:#E9F3F8; padding:clamp(110px,16vh,190px) 0; }
.ripple-effect-01 { position:absolute; left:76%; top:50%; width:min(56vw,640px); height:min(56vw,640px); border-radius:50%; border:1px solid rgba(190,220,234,.26); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 16s cubic-bezier(.22,.61,.36,1) infinite; animation-play-state:running; }
.ripple-effect-02 { position:absolute; left:76%; top:50%; width:min(56vw,640px); height:min(56vw,640px); border-radius:50%; border:1px solid rgba(190,220,234,.26); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 16s cubic-bezier(.22,.61,.36,1) infinite; animation-delay:8s; animation-play-state:running; }
.deep-inner { position:relative; z-index:2; max-width:1120px; margin:0 auto; padding:0 clamp(24px,5vw,56px); }
.section-header-center { margin-bottom:clamp(40px,6vh,64px); }
.deep-category { display:block; margin-bottom:18px; font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:500; letter-spacing:.32em; font-size:11px; color:#8FB6CE; text-transform:uppercase; }
.deep-title { margin:0 0 10px; font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; font-weight:500; color:#F2F8FB; font-size:clamp(25px,3.4vw,37px); letter-spacing:.12em; line-height:1.8; }
.deep-title-en { font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:500; color:#8FB6CE; font-size:clamp(11px,1.3vw,13px); letter-spacing:.3em; }
.deep-body { max-width:620px; font-size:15px; color:#C4D8E4; }
.section-trust,.section-careers { background:#F7FBFD; padding:clamp(100px,15vh,180px) 0; }
.trust-lead { max-width:620px; font-size:15px; color:#3B4B57; margin-bottom:clamp(64px,10vh,104px); }
.trust-grid { border-top:1px solid #BEDCEA; }
.trust-card { display:flex; flex-wrap:wrap; gap:10px clamp(32px,5vw,72px); align-items:baseline; padding:clamp(30px,4.5vh,42px) 4px; border-bottom:1px solid #BEDCEA; }
.trust-card-title { margin:0; flex:0 0 auto; min-width:min(300px,100%); font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; font-weight:500; color:#1E3A50; font-size:clamp(16.5px,1.9vw,19px); letter-spacing:.08em; line-height:1.9; }
.trust-card-text { margin:0; flex:1 1 380px; font-size:13px; line-height:2.1; color:#4A5A66; }
.partners-block { margin-top:clamp(56px,8vh,80px); }
.partners-title { display:block; margin-bottom:20px; font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:500; letter-spacing:.32em; font-size:11px; color:#3D7096; text-transform:uppercase; }
.partners-list { margin:0; font-size:12.5px; line-height:2.4; color:#5A6B77; max-width:860px; }
.partner-item { display:inline-block; }
.section-company { background:#FFFFFF; padding:clamp(100px,15vh,180px) 0; }
.company-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,88px); }
.company-info-list { margin:0; font-size:13.5px; }
.company-info-row { display:grid; grid-template-columns:104px 1fr; padding:14px 0; border-bottom:1px solid #E4F1F7; }
.company-info-term { color:#3D7096; letter-spacing:.16em; font-size:12px; }
.office-list { margin:0; padding:0; list-style:none; font-size:13px; color:#4A5A66; }
.office-item { display:flex; gap:18px; padding:12px 0; border-bottom:1px solid #E4F1F7; }
.office-name{ font-weight:600; color:#1E3A50; flex:none; width:92px; letter-spacing:.08em; }
.badge-note { display:inline-block; margin-left:10px; font-size:10px; letter-spacing:.18em; color:#3D7096; border:1px solid #BEDCEA; border-radius:2px; padding:2px 8px 1px 10px; white-space:nowrap; }
.careers-lead { max-width:620px; font-size:15px; color:#3B4B57; }
.job-list { list-style:none; margin:clamp(40px,6vh,60px) 0 0; padding:0; border-top:1px solid #BEDCEA; }
.job-link { display:grid; grid-template-columns:minmax(84px,116px) 1fr auto; align-items:baseline; gap:16px; padding:21px 8px; border-bottom:1px solid #BEDCEA; text-decoration:none; color:#26333D; transition:background .35s; }
.job-category { font-size:11px; letter-spacing:.2em; color:#3D7096; }
.job-title { font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; font-size:clamp(15px,1.8vw,17px); letter-spacing:.08em; color:#1E3A50; }
.job-arrow { color:#7FAECB; font-size:13px; }
.careers-note { margin:18px 0 0; font-size:11.5px; color:#6E8494; letter-spacing:.1em; }
.section-contact { background:linear-gradient(#E4F1F7,#D8EAF3); text-align:center; padding:clamp(110px,16vh,190px) 0; position:relative; overflow:hidden; }
.contact-header { margin-bottom:20px; }
.contact-lead { margin:0 0 44px; color:#42525E; }
.email-box { position:relative; display:inline-block; }
.email-bg-ripple-01 { position:absolute; left:50%; top:50%; width:min(72vw,560px); height:min(72vw,560px); border-radius:50%; border:1.5px solid rgba(61,112,150,.38); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 9s cubic-bezier(.22,.61,.36,1) infinite; animation-play-state:running; pointer-events:none; }
.email-bg-ripple-02 { position:absolute; left:50%; top:50%; width:min(72vw,560px); height:min(72vw,560px); border-radius:50%; border:1.5px solid rgba(61,112,150,.38); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 9s cubic-bezier(.22,.61,.36,1) infinite; animation-delay:3s; animation-play-state:running; pointer-events:none; }
.email-bg-ripple-03 { position:absolute; left:50%; top:50%; width:min(72vw,560px); height:min(72vw,560px); border-radius:50%; border:1.5px solid rgba(61,112,150,.38); transform:translate(-50%,-50%) scale(.04); opacity:0; animation:lb-ripple 9s cubic-bezier(.22,.61,.36,1) infinite; animation-delay:6s; animation-play-state:running; pointer-events:none; }
.email-address { position:relative; z-index:1; display:inline-block; font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; color:#1E3A50; font-size:clamp(16px,2.2vw,20px); letter-spacing:.22em; padding:17px 48px 15px 52px; border:1px solid #3D7096; border-radius:999px; background:rgba(255,255,255,.75); user-select:all; }
.email-note { margin:24px 0 0; font-size:11.5px; color:#6E8494; letter-spacing:.1em; }
.footer { background:#1E3A50; color:#9DB6C7; padding:56px 0 44px; font-size:11.5px; letter-spacing:.08em; }
.footer-inner { max-width:1120px; margin:0 auto; padding:0 clamp(24px,5vw,56px); display:flex; flex-wrap:wrap; gap:26px; align-items:center; justify-content:space-between; }
.footer-logo { display:flex; align-items:center; gap:9px; }
.header-logo-svg { height:23px; width:auto; display:block; }
.footer-nav { display:flex; flex-wrap:wrap; gap:20px; }
.footer-nav-list { color:#B9CEDC; font-size:11px; text-decoration:none; }
.footer-nav-item, .footer-nav-link { height:44px; width:auto; display:block; }
.footer-legal, .footer-legal-link { color:#B9CEDC; font-size:11px; text-decoration:underline; }
.footer-copyright { width:100%; color:#6E8A9E; font-size:10.5px; letter-spacing:.12em; }
.policy-page-hero { position:relative; padding:clamp(150px,20vh,190px) clamp(24px,5vw,56px) clamp(60px,9vh,88px); background:linear-gradient(175deg,#FDFEFF 0%,#F7FBFD 42%,#E4F1F7 80%,#D8EAF3 100%); overflow:hidden; }
.policy-page-hero-inner { position:relative; max-width:760px; margin:0 auto; }
.policy-page-title { margin:0; font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; font-weight:500; color:#1E3A50; font-size:clamp(28px,4vw,42px); letter-spacing:.12em; line-height:1.7; }
.policy-page-content { background:#FFFFFF; padding:clamp(64px,9vh,96px) 0 clamp(96px,13vh,140px); }
.policy-page-body { max-width:760px; margin:0 auto; padding:0 clamp(24px,5vw,56px); font-size:15px; color:#3B4B57; }
.policy-page-intro { margin:0 0 56px; }
.policy-section-title { margin:0 0 12px; font-family:'Yu Mincho',YuMincho,'Hiragino Mincho ProN','Noto Serif JP',serif; font-weight:500; color:#1E3A50; font-size:clamp(18px,2vw,21px); letter-spacing:.08em; }
.policy-section-text { margin:0 0 40px; }
.policy-section-subtext { margin:0 0 18px; }
.policy-subsection-label { margin:0 0 6px; color:#1E3A50; }
.policy-list { margin:0 0 20px; padding-left:22px; }
.policy-list-item { margin-bottom:6px; }
.policy-list-spaced { margin:0 0 40px; padding-left:22px; }
.policy-contact-text { margin:0 0 24px; }
.policy-contact-card { margin:0 0 40px; padding:26px 28px; background:#F7FBFD; border:1px solid #E4F1F7; border-radius:4px; }
.policy-contact-heading { margin:0 0 4px; font-family:Manrope,Avenir,'Helvetica Neue',Arial,sans-serif; font-weight:500; letter-spacing:.12em; font-size:11.5px; color:#3D7096; text-transform:uppercase; }
.policy-contact-details { margin:0; color:#1E3A50; }
.policy-intro-text { margin:0 0 20px; }
.policy-policy-text { margin:0 0 48px; }
.policy-commitment-list { margin:0 0 56px; padding-left:22px; }
.policy-commitment-item { margin-bottom:14px; }
.policy-signature-block { padding-top:32px; border-top:1px solid #E4F1F7; color:#1E3A50; }
.policy-signature-date { margin:0 0 4px; }
.policy-signature-name { margin:0 0 2px; }
