/* =====================================================
   common_page.css  —  下層ページ共通スタイル
   about / service / flow / company / recruit / contact
   ===================================================== */

/* ========== RESET & BASE ========== */
*,*::before,*::after{box-sizing:border-box;}
html,body,div,span,h1,h2,h3,h4,h5,h6,p,a,ul,ol,li,figure,figcaption,section,header,footer,nav,main{margin:0;padding:0;border:0;}
ul,ol{list-style:none;}
img{width:100%;vertical-align:bottom;}
a{text-decoration:none;color:inherit;transition:all .4s cubic-bezier(.25,.46,.45,.94);}

/* ========== CSS VARIABLES ========== */
:root{
  --primary:#1e9d8d;
  --primary-dark:#157a6e;
  --primary-light:#e6f7f5;
  --accent:#f5a623;
  --accent-light:#ffd48f;
  --navy:#0b2d42;
  --navy-light:#1a4d66;
  --text:#1a1a1a;
  --text-light:#666;
  --bg:#f0f4f3;
  --white:#fff;
  --grad:linear-gradient(135deg,#1e9d8d 0%,#157a6e 50%,#0b6b5c 100%);
  --grad-warm:linear-gradient(135deg,#f5a623 0%,#ff8c42 50%,#ff6b3d 100%);
  --grad-mixed:linear-gradient(135deg,#1e9d8d 0%,#f5a623 100%);
}

/* ========== TYPOGRAPHY ========== */
html{
  font:normal 300 62.5%/1 'Noto Sans JP','ヒラギノ角ゴ Pro','Hiragino Kaku Gothic Pro','メイリオ',Meiryo,sans-serif;
  -webkit-font-smoothing:antialiased;
}
body{
  font-size:1.6rem;line-height:1.7;
  color:var(--text);background:var(--bg);
  letter-spacing:.06em;overflow-x:hidden;position:relative;
}
body.nav-open{overflow:hidden;}
.enb{font-family:'Kanit',sans-serif;font-weight:600;}
.en{font-family:'Kanit',sans-serif;font-weight:400;}
.en02{font-family:'Lexend Tera',sans-serif;font-weight:600;}
.grd{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.all_wrap{position:relative;overflow:hidden;}
.con_1054{max-width:1054px;margin:0 auto;padding:0 5%;}
.con_1160{max-width:1160px;margin:0 auto;padding:0 5%;}

/* ========== FLOATING BG DECO ========== */
body::before{
  content:'';position:fixed;top:-50%;right:-10%;
  width:500px;height:500px;
  background:radial-gradient(circle,rgba(30,157,141,.08) 0%,transparent 70%);
  border-radius:50%;z-index:1;pointer-events:none;
  animation:float 20s ease-in-out infinite;
}
body::after{
  content:'';position:fixed;bottom:-20%;left:-5%;
  width:400px;height:400px;
  background:radial-gradient(circle,rgba(245,166,35,.06) 0%,transparent 70%);
  border-radius:50%;z-index:1;pointer-events:none;
  animation:float 25s ease-in-out infinite reverse;
}
@keyframes float{
  0%,100%{transform:translate(0,0);}
  50%{transform:translate(30px,30px);}
}

/* ========== BREADCRUMB ========== */
.breadcrumb{
  padding:100px 0 0;
  background:linear-gradient(135deg,#fff 0%,#f5f9f9 100%);
}
.breadcrumb_inner{
  max-width:1160px;margin:0 auto;padding:20px 5%;
  display:flex;align-items:center;gap:8px;
  font-size:1.2rem;color:var(--text-light);
}
.breadcrumb_inner a{color:var(--primary);}
.breadcrumb_inner a:hover{text-decoration:underline;}
.breadcrumb_inner .sep{opacity:.4;}

/* ========== PAGE HERO ========== */
.page_hero{
  position:relative;
  background:linear-gradient(135deg,#fff 0%,rgba(230,247,245,.6) 100%);
  padding:40px 0 0;overflow:hidden;
}
.page_hero::before{
  content:'';position:absolute;top:10%;right:5%;
  width:280px;height:280px;
  background:conic-gradient(from 45deg,var(--accent-light),var(--primary-light),var(--accent-light));
  opacity:.15;border-radius:30% 70% 70% 30%/30% 30% 70% 70%;
  animation:morphing 8s ease-in-out infinite;
}
.page_hero::after{
  content:'';position:absolute;bottom:5%;left:3%;
  width:200px;height:200px;
  background:conic-gradient(from -45deg,var(--primary-light),var(--accent-light),var(--primary-light));
  opacity:.12;border-radius:70% 30% 30% 70%/30% 70% 70% 30%;
  animation:morphing 10s ease-in-out infinite reverse;
}
@keyframes morphing{
  0%,100%{border-radius:30% 70% 70% 30%/30% 30% 70% 70%;}
  25%{border-radius:58% 42% 74% 26%/50% 50% 30% 50%;}
  50%{border-radius:70% 30% 46% 54%/30% 27% 73% 70%;}
  75%{border-radius:56% 44% 42% 58%/72% 50% 50% 28%;}
}
.page_hero_inner{
  max-width:1160px;margin:0 auto;padding:0 5%;
  display:grid;grid-template-columns:1fr 1fr;gap:60px;
  align-items:end;min-height:420px;position:relative;z-index:2;
}
.page_hero_left{
  padding-bottom:60px;
  animation:slideInLeft .8s ease-out .2s both;
}
.page_hero_eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:24px;}
.page_hero_eyebrow .line{
  width:48px;height:3px;background:var(--primary);
  animation:expandWidth .6s ease-out .4s both;
}
.page_hero_eyebrow span{
  font-family:'Kanit',sans-serif;font-weight:600;
  font-size:1.2rem;letter-spacing:.2em;color:var(--primary);
}
.page_hero_title{
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:clamp(5rem,8vw,10rem);line-height:.9;letter-spacing:-.02em;
  background:var(--grad-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:20px;display:inline-block;transform:skewY(-2deg);
}
.page_hero_subtitle{
  font-size:clamp(1.8rem,2.4vw,2.6rem);font-weight:700;color:var(--navy);
  line-height:1.4;margin-bottom:24px;position:relative;padding-left:24px;
}
.page_hero_subtitle::before{
  content:'';position:absolute;left:0;top:0;
  width:4px;height:100%;background:var(--grad-warm);border-radius:2px;
}
.page_hero_desc{font-size:1.5rem;line-height:2;color:var(--text-light);}
.page_hero_right{position:relative;align-self:stretch;animation:slideInRight .8s ease-out .3s both;}
.page_hero_img_wrap{
  position:absolute;bottom:0;right:0;
  width:100%;height:calc(100% + 40px);
  transform:rotate(2deg);
  box-shadow:-8px 16px 32px rgba(30,157,141,.15);
}
.page_hero_img_wrap img{width:100%;height:100%;object-fit:cover;border-radius:12px 12px 0 0;}
.page_hero_img_wrap::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(11,45,66,.1) 0%,transparent 60%);
  border-radius:12px 12px 0 0;
}

/* ========== SECTION LABEL / HEADING ========== */
.section_label{display:inline-flex;align-items:center;gap:12px;margin-bottom:20px;}
.section_label .dot{
  width:10px;height:10px;background:var(--primary);border-radius:50%;
  box-shadow:0 0 12px var(--primary);animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{box-shadow:0 0 12px var(--primary);}
  50%{box-shadow:0 0 24px var(--primary);}
}
.section_label span{font-family:'Kanit',sans-serif;font-weight:600;font-size:1.1rem;letter-spacing:.2em;color:var(--primary);}
.section_en{
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:clamp(4rem,6vw,8rem);line-height:.9;letter-spacing:-.02em;
  background:var(--grad-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:8px;transform:skewX(-3deg);display:block;
}
.section_ja{
  font-size:clamp(1.8rem,2.2vw,2.4rem);font-weight:700;color:var(--navy);
  letter-spacing:.06em;margin-bottom:32px;position:relative;padding-bottom:16px;display:block;
}
.section_ja::after{
  content:'';position:absolute;bottom:0;left:0;
  width:60px;height:3px;background:var(--grad-warm);border-radius:2px;
}
/* con_tit / con_s_tit (index流) */
.con_tit{
  font-family:'Kanit',sans-serif;font-size:clamp(5rem,7vw,9rem);font-weight:700;
  line-height:1.2;letter-spacing:-.02em;margin-bottom:8px;display:block;
}
.con_s_tit{
  display:block;font-size:clamp(1.8rem,2.2vw,2.4rem);font-weight:700;
  letter-spacing:.06em;margin-bottom:32px;
}

/* ========== CTA SECTION ========== */
.cta_section{
  padding:80px 0;
  background:linear-gradient(135deg,var(--grad) 0%,var(--grad-warm) 100%);
  position:relative;overflow:hidden;
}
.cta_section::before,.cta_section::after{content:'';position:absolute;opacity:.1;pointer-events:none;border-radius:50%;}
.cta_section::before{top:-50px;left:-100px;width:300px;height:300px;background:radial-gradient(circle,#fff 0%,transparent 70%);}
.cta_section::after{bottom:-50px;right:-100px;width:400px;height:400px;background:radial-gradient(circle,#fff 0%,transparent 70%);}
.cta_inner{max-width:1160px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.cta_box{
  background:rgba(255,255,255,.95);padding:60px;border-radius:20px;
  box-shadow:0 20px 60px rgba(0,0,0,.15);
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
  backdrop-filter:blur(8px);
}
.cta_text h3{font-size:clamp(1.8rem,2.4vw,2.6rem);font-weight:700;color:var(--navy);line-height:1.4;margin-bottom:16px;}
.cta_text p{font-size:1.5rem;color:var(--text-light);line-height:1.8;}
.cta_buttons{display:flex;gap:20px;}
.btn_primary{
  display:block;
  padding:18px 0;background:var(--grad);color:#fff;
  font-size:1.5rem;font-weight:700;border-radius:12px;
  text-align:center;
  transition:all .4s ease;box-shadow:0 8px 20px rgba(30,157,141,.3);
}
.btn_primary:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(30,157,141,.4);}
.btn_outline{
  display:block;
  padding:18px 0;background:#fff;color:var(--navy);
  font-size:1.5rem;font-weight:700;border:2px solid var(--navy);border-radius:12px;
  text-align:center;
  transition:all .4s ease;
}
.btn_outline:hover{background:var(--navy);color:#fff;transform:translateY(-3px);}
.cta_buttons a{flex:1;}

/* ========== INVIEW ANIMATIONS ========== */
.inview{opacity:0;transform:translateY(40px);}
.inview.move{animation:slideUp .8s ease-out forwards;}
.inview.delay1.move{animation:slideUp .8s ease-out .1s forwards;}
.inview.delay2.move{animation:slideUp .8s ease-out .2s forwards;}
.inview.delay3.move{animation:slideUp .8s ease-out .3s forwards;}
@keyframes slideUp{from{opacity:0;transform:translateY(40px);}to{opacity:1;transform:translateY(0);}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-40px);}to{opacity:1;transform:translateX(0);}}
@keyframes slideInRight{from{opacity:0;transform:translateX(40px);}to{opacity:1;transform:translateX(0);}}
@keyframes expandWidth{from{width:0;}to{width:48px;}}

/* ========== RESPONSIVE ========== */
@media(max-width:768px){
  .page_hero_inner,.cta_box{grid-template-columns:1fr;}
  .page_hero_inner{gap:0;}
  .page_hero_left{padding-bottom:20px;}
  .page_hero_right{display:block;padding-bottom:32px;}
  .page_hero_img_wrap{
    position:relative;bottom:auto;right:auto;
    width:100%;height:200px;
    transform:none;
    box-shadow:0 4px 20px rgba(30,157,141,.15);
  }
  .page_hero_img_wrap img{border-radius:8px;}
  .cta_buttons{flex-direction:column;}
  .page_hero_title{transform:skewY(-1deg);}
  .section_en{transform:skewX(-2deg);}
}

/* ========== SERVICE PAGE ========== */
.service_hero_bg{
  position:absolute;inset:0;z-index:0;
  background:linear-gradient(135deg,rgba(11,45,66,.03) 0%,rgba(30,157,141,.05) 100%);
}
.service_intro{
  padding:100px 0;
  background:linear-gradient(180deg,#fff 0%,rgba(230,247,245,.3) 100%);
  position:relative;overflow:hidden;
}
.service_intro::before{
  content:'Business';
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:min(14vw,18rem);color:rgba(30,157,141,.04);
  position:absolute;right:-2%;top:40px;
  line-height:1;pointer-events:none;white-space:nowrap;
}
.service_intro_inner{max-width:1160px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.service_intro_lead{
  font-size:clamp(1.8rem,2.4vw,2.8rem);font-weight:700;color:var(--navy);
  line-height:1.6;margin-bottom:24px;
  position:relative;padding-left:20px;
}
.service_intro_lead::before{
  content:'';position:absolute;left:0;top:0;
  width:4px;height:100%;background:var(--grad-warm);border-radius:2px;
}
.service_intro_body{font-size:1.6rem;line-height:2;color:var(--text-light);max-width:760px;}
.service_list_section{
  padding:100px 0;
  background:var(--bg);position:relative;
}
.service_list_inner{max-width:1160px;margin:0 auto;padding:0 5%;}
.service_cards{display:grid;gap:80px;margin-top:60px;}
.service_card{
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:stretch;
  background:#fff;border-radius:20px;
  box-shadow:0 8px 40px rgba(11,45,66,.06);
  overflow:hidden;transition:box-shadow .4s ease;
  scroll-margin-top:100px;
}
.service_card:hover{box-shadow:0 20px 60px rgba(30,157,141,.12);}
.service_card:nth-child(even){direction:rtl;}
.service_card:nth-child(even) > *{direction:ltr;}
/* ── 画像エリア外枠：高さはテキスト列に追従（aspect-ratioなし）── */
.service_card_img{
  position:relative;
  overflow:hidden;
  background:#fff;
  /* aspect-ratioは設定しない。align-items:stretchでテキスト列と同じ高さになる */
}
/* ── フレーム：スリックから切り離した inset ボックス ── */
.service_card_img_frame{
  position:absolute;
  inset:24px;        /* 上下左右均等に白余白24px */
  overflow:hidden;   /* はみ出しを非表示 */
}
/* ── スリック本体はフレームを100%埋める ── */
.service_card_slider{
  width:100%;
  height:100%;       /* フレームの高さを継承 */
}
/* ── スリック内部要素もフレーム高さを維持 ── */
.service_card_slider .slick-list,
.service_card_slider .slick-track{height:100%!important;}
.service_card_slider .slick-slide,
.service_card_slider .slick-slide>div{height:100%!important;}
/* ── 画像：サイズ不問で常にフレームを埋める ── */
.service_card_slider .slick-slide img{
  width:100%;
  height:100%;
  object-fit:cover;  /* 小→拡大、大→クロップ */
  display:block;
  will-change:opacity;
}
.service_card_slider .slick-dots{display:none;}
/* ── オーバーレイはフレーム範囲（画像上）のみ ── */
.service_card_img_overlay{
  position:absolute;
  inset:24px;
  background:linear-gradient(135deg,rgba(30,157,141,.15) 0%,transparent 60%);
  pointer-events:none;
  z-index:1;
}
/* ── バッジ：白余白を越えた画像上に配置 ── */
.service_card_num{
  position:absolute;top:36px;left:36px;
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:1rem;letter-spacing:.2em;color:#fff;
  background:var(--primary);padding:6px 14px;border-radius:20px;
  z-index:3;
}
.service_card_body{
  padding:48px;
  display:flex;flex-direction:column;justify-content:center;
}
.service_card_tag{
  display:inline-block;margin-bottom:20px;
  font-family:'Kanit',sans-serif;font-weight:600;
  font-size:1rem;letter-spacing:.2em;color:var(--primary);text-transform:uppercase;
}
.service_card_title{
  font-size:clamp(2rem,2.6vw,2.8rem);font-weight:700;
  color:var(--navy);line-height:1.3;margin-bottom:20px;
}
.service_card_desc{font-size:1.5rem;line-height:2;color:var(--text-light);margin-bottom:28px;}
.service_card_features{list-style:none;padding:0;margin-bottom:28px;}
.service_card_features li{
  display:flex;align-items:flex-start;gap:12px;
  padding:10px 0;border-bottom:1px solid rgba(30,157,141,.1);
  font-size:1.4rem;color:var(--text);
}
.service_card_features li::before{
  content:'';flex-shrink:0;margin-top:6px;
  width:8px;height:8px;background:var(--primary);border-radius:50%;
}

/* Feature strip */
.feature_strip{
  padding:80px 0;
  background:linear-gradient(135deg,var(--navy) 0%,#0a2535 100%);
  position:relative;overflow:hidden;
}
.feature_strip__bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:.1;pointer-events:none;
}
.feature_strip_inner{max-width:1160px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.feature_strip_grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-top:48px;}
.feature_item{text-align:center;}
.feature_item_num{
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:4rem;line-height:1;
  background:var(--grad-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:12px;
}
.feature_item_num span{font-size:2rem;}
.feature_item_label{font-size:1.4rem;font-weight:500;color:rgba(255,255,255,.85);line-height:1.6;}
.feature_strip .section_en{color:rgba(255,255,255,.1);-webkit-text-fill-color:rgba(255,255,255,.1);}
.feature_strip .section_ja{color:#fff;}
.feature_strip .section_ja::after{background:var(--grad-warm);}

/* ========== ABOUT PAGE ========== */
.philosophy{
  padding:100px 0;
  background:linear-gradient(180deg,#fff 0%,rgba(230,247,245,.3) 100%);
  position:relative;overflow:hidden;
}
.philosophy::before{
  content:'Philosophy';
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:min(14vw,18rem);color:rgba(30,157,141,.05);
  position:absolute;right:-2%;top:40px;
  line-height:1;pointer-events:none;white-space:nowrap;
}
.philosophy_inner{max-width:1160px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.philosophy_grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.philosophy_text_block{position:relative;}
.philosophy_lead{
  font-size:clamp(2rem,2.6vw,3rem);
  font-weight:700;color:var(--navy);
  line-height:1.6;margin-bottom:32px;position:relative;
}
.philosophy_lead::before{
  content:'';position:absolute;left:-20px;top:0;
  width:4px;height:80%;background:var(--grad-warm);border-radius:2px;
}
.philosophy_img_wrap{
  position:relative;padding:20px;
  background:linear-gradient(135deg,rgba(30,157,141,.05) 0%,rgba(245,166,35,.05) 100%);
  border-radius:20px;transform:rotate(-1.5deg);
}
.philosophy_img_wrap img{width:100%;border-radius:12px;box-shadow:4px 12px 24px rgba(0,0,0,.08);}

/* ===== MVV BLOCK ===== */
.mvv_block{margin-top:80px;padding-top:80px;border-top:1px solid rgba(30,157,141,.15);display:flex;flex-direction:column;gap:20px;}
.mvv_item{
  display:grid;grid-template-columns:200px 1fr;
  border-radius:16px;overflow:hidden;
  box-shadow:0 4px 24px rgba(11,45,66,.07);
}
.mvv_side{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;padding:40px 24px;text-align:center;
}
.mvv_item--mission .mvv_side{background:linear-gradient(160deg,#1e9d8d 0%,#0b6b5c 100%);}
.mvv_item--vision  .mvv_side{background:linear-gradient(160deg,#1a6fa8 0%,#0b4d7a 100%);}
.mvv_item--value   .mvv_side{background:linear-gradient(160deg,#f5a623 0%,#d97800 100%);}
.mvv_icon_wrap{
  width:64px;height:64px;border-radius:50%;
  background:rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
}
.mvv_icon_wrap i{font-size:2.6rem;color:#fff;}
.mvv_en{
  font-family:'Kanit',sans-serif;font-size:1.3rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:#fff;
}
.mvv_body{
  background:#fff;padding:36px 48px;
  display:flex;flex-direction:column;justify-content:center;
}
.mvv_ja_label{font-size:1.2rem;color:var(--text-light);margin-bottom:8px;}
.mvv_heading{
  font-size:clamp(1.6rem,1.6vw,2rem);font-weight:700;
  color:var(--navy);line-height:1.5;margin-bottom:14px;
}
.mvv_text{font-size:1.45rem;line-height:2;color:var(--text-light);margin:0;}
.mvv_list{list-style:none;padding:0;margin:0;}
.mvv_list li{
  display:flex;align-items:flex-start;gap:20px;
  padding:18px 0;border-top:1px solid rgba(30,157,141,.1);
}
.mvv_num{
  font-family:'Kanit',sans-serif;font-weight:700;font-size:2rem;
  color:var(--primary);min-width:36px;line-height:1.2;flex-shrink:0;
}
.mvv_list_body strong{display:block;font-size:1.5rem;font-weight:700;color:var(--navy);margin-bottom:6px;}
.mvv_list_body p{font-size:1.4rem;line-height:1.8;color:var(--text-light);margin:0;}
@media(max-width:768px){
  .mvv_item{grid-template-columns:1fr;}
  .mvv_side{flex-direction:row;padding:20px 24px;gap:16px;justify-content:flex-start;}
  .mvv_icon_wrap{width:44px;height:44px;flex-shrink:0;}
  .mvv_icon_wrap i{font-size:1.8rem;}
  .mvv_body{padding:24px;}
  .mvv_block{margin-top:60px;padding-top:60px;gap:16px;}
}

.strength{
  padding:100px 0;
  background:linear-gradient(180deg,rgba(245,166,35,.04) 0%,#fff 100%);
  position:relative;
}
.strength::after{content:'';position:absolute;top:0;right:0;width:300px;height:100%;background:radial-gradient(ellipse at center,rgba(245,166,35,.1) 0%,transparent 70%);pointer-events:none;}
.strength_inner{max-width:1160px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.strength_cards{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:60px;}
.strength_card{
  background:linear-gradient(135deg,#fff 0%,rgba(230,247,245,.4) 100%);
  padding:48px 32px;border-radius:16px;
  border:1px solid rgba(30,157,141,.1);
  position:relative;overflow:hidden;transition:all .4s ease;
  transform:rotate(-1deg);
}
.strength_card:nth-child(2){transform:rotate(0deg) translateY(-20px);}
.strength_card:nth-child(3){transform:rotate(1deg) translateY(20px);}
.strength_card:nth-child(4){transform:rotate(0deg) translateY(0px);}
.strength_card:hover{transform:translateY(-8px) rotate(0deg);box-shadow:0 20px 48px rgba(30,157,141,.12);background:linear-gradient(135deg,#fff 0%,rgba(230,247,245,.6) 100%);}
.strength_card h3{font-size:1.6rem;font-weight:700;color:var(--navy);margin-bottom:16px;position:relative;z-index:2;}
.strength_card p{font-size:1.4rem;line-height:1.8;color:var(--text-light);position:relative;z-index:2;}
.history_section{
  padding:100px 0;
  background:linear-gradient(135deg,#fff 0%,rgba(11,45,66,.02) 100%);
  position:relative;
}
.history_inner{max-width:1160px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.history_layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.timeline_item{position:relative;padding-left:60px;margin-bottom:40px;}
.timeline_item::before{
  content:'';position:absolute;left:0;top:8px;
  width:18px;height:18px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border-radius:50%;border:3px solid #fff;
  box-shadow:0 0 0 2px var(--primary);
}
.timeline_item:not(:last-child)::after{
  content:'';position:absolute;left:8px;top:36px;
  width:2px;height:calc(100% + 40px);
  background:linear-gradient(180deg,var(--primary),var(--primary-light));
}
.timeline_year{
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:1.2rem;color:var(--primary);margin-bottom:8px;letter-spacing:.1em;
}
.timeline_text{font-size:1.5rem;font-weight:500;color:var(--navy);margin-bottom:8px;}
.timeline_sub{font-size:1.3rem;color:var(--text-light);line-height:1.6;}
.history_img_stack{position:relative;height:450px;perspective:1000px;}
.history_img_stack .img_a,.history_img_stack .img_b{
  position:absolute;border-radius:12px;
  box-shadow:0 12px 32px rgba(0,0,0,.1);overflow:hidden;
}
.history_img_stack .img_a{width:75%;height:65%;right:0;top:0;transform:rotate(3deg);z-index:2;}
.history_img_stack .img_b{width:70%;height:60%;left:0;bottom:0;transform:rotate(-2deg);z-index:1;}
.history_img_stack img{width:100%;height:100%;object-fit:cover;}
.history_company_info{
  background:linear-gradient(135deg,#fff 0%,rgba(230,247,245,.4) 100%);
  padding:40px;border-radius:16px;
  border:1px solid rgba(30,157,141,.1);margin-top:40px;
}
.history_company_info table{width:100%;border-collapse:collapse;}
.history_company_info td{padding:16px 0;border-bottom:1px solid rgba(30,157,141,.1);font-size:1.4rem;}
.history_company_info td:first-child{width:35%;font-weight:600;color:var(--primary);}
.message_section{
  padding:100px 0;
  background:linear-gradient(180deg,rgba(11,45,66,.03) 0%,#fff 100%);
  position:relative;overflow:hidden;
}
.message_inner{max-width:1280px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.message_layout{display:grid;grid-template-columns:3fr 2fr;gap:60px;align-items:center;}
.message_quote{
  background:linear-gradient(135deg,#fff 0%,rgba(230,247,245,.3) 100%);
  padding:48px;border-left:4px solid var(--grad-warm);border-radius:12px;margin:32px 0;
  box-shadow:0 8px 24px rgba(30,157,141,.08);
}
.message_quote p{font-size:1.4rem;line-height:2;color:var(--text);margin-bottom:20px;}
.message_quote p:last-child{margin-bottom:0;}
.message_sig{margin-top:32px;}
.message_sig .role{font-size:1.2rem;color:var(--primary);text-transform:uppercase;letter-spacing:.1em;}
.message_sig .name{font-size:1.8rem;font-weight:700;color:var(--navy);margin-top:8px;}
.message_img_block{position:relative;}
.message_img_wrap{border-radius:16px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.12);transform:rotate(-2deg);}
.message_img_wrap img{width:100%;display:block;}

/* ========== FLOW PAGE ========== */
.flow_main{
  padding:100px 0 120px;
  background:linear-gradient(180deg,#fff 0%,rgba(230,247,245,.3) 100%);
  position:relative;overflow:hidden;
}
.flow_main::before{
  content:'Flow';
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:min(20vw,22rem);color:rgba(30,157,141,.04);
  position:absolute;right:-2%;top:20px;
  line-height:1;pointer-events:none;white-space:nowrap;
}
.flow_main_inner{max-width:1160px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.flow_timeline{margin-top:80px;position:relative;}
.flow_timeline::before{
  content:'';position:absolute;
  left:52px;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,var(--primary) 0%,var(--primary-light) 100%);
}
.flow_step_item{display:grid;grid-template-columns:104px 1fr;gap:0;margin-bottom:64px;position:relative;}
.flow_step_item:last-child{margin-bottom:0;}
.flow_step_left{display:flex;flex-direction:column;align-items:center;position:relative;}
.flow_step_circle{
  width:104px;height:104px;
  background:var(--grad);border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  box-shadow:0 8px 32px rgba(30,157,141,.3);
  flex-shrink:0;position:relative;z-index:2;
  transition:transform .3s ease,box-shadow .3s ease;
}
.flow_step_item:hover .flow_step_circle{transform:scale(1.06);box-shadow:0 12px 40px rgba(30,157,141,.4);}
.flow_step_circle .step_num{font-family:'Kanit',sans-serif;font-weight:700;font-size:1rem;color:rgba(255,255,255,.7);letter-spacing:.1em;}
.flow_step_circle .step_num_big{font-family:'Kanit',sans-serif;font-weight:700;font-size:3rem;color:#fff;line-height:1;}
.flow_step_right{padding:24px 0 24px 48px;}
.flow_step_tag{
  display:inline-block;margin-bottom:12px;
  font-family:'Kanit',sans-serif;font-weight:600;
  font-size:1rem;letter-spacing:.2em;color:var(--primary);text-transform:uppercase;
}
.flow_step_title{font-size:clamp(2rem,2.6vw,2.8rem);font-weight:700;color:var(--navy);margin-bottom:16px;line-height:1.3;}
.flow_step_desc{font-size:1.5rem;line-height:2;color:var(--text-light);margin-bottom:20px;}
.flow_step_points{list-style:none;padding:0;}
.flow_step_points li{
  display:flex;align-items:flex-start;gap:12px;padding:8px 0;
  font-size:1.4rem;color:var(--text);
  border-bottom:1px dashed rgba(30,157,141,.15);
}
.flow_step_points li:last-child{border-bottom:none;}
.flow_step_points li::before{content:'';flex-shrink:0;margin-top:7px;width:6px;height:6px;background:var(--accent);border-radius:50%;}
.flow_step_card{
  background:linear-gradient(135deg,#fff 0%,rgba(230,247,245,.4) 100%);
  border-radius:16px;padding:32px;border:1px solid rgba(30,157,141,.1);
  box-shadow:0 4px 20px rgba(11,45,66,.06);margin-top:20px;
  display:flex;align-items:center;gap:24px;
}
.flow_step_card_icon{
  width:56px;height:56px;flex-shrink:0;
  background:var(--primary-light);border-radius:12px;
  display:flex;align-items:center;justify-content:center;font-size:2.4rem;
}
.flow_step_card_text{font-size:1.4rem;line-height:1.8;color:var(--text-light);}
.flow_step_card_text strong{display:block;color:var(--navy);font-size:1.5rem;margin-bottom:4px;}
.faq_section{padding:100px 0;background:var(--bg);}
.faq_inner{max-width:860px;margin:0 auto;padding:0 5%;}
.faq_list{margin-top:60px;display:grid;gap:16px;}
.faq_item{background:#fff;border-radius:12px;border:1px solid rgba(30,157,141,.1);overflow:hidden;transition:box-shadow .3s ease;}
.faq_item:hover{box-shadow:0 8px 24px rgba(30,157,141,.1);}
.faq_q{display:flex;align-items:center;gap:20px;padding:24px 28px;cursor:pointer;font-size:1.6rem;font-weight:700;color:var(--navy);}
.faq_q_icon{
  flex-shrink:0;width:36px;height:36px;
  background:var(--primary);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'Kanit',sans-serif;font-weight:700;font-size:1.4rem;color:#fff;
}
.faq_a{
  padding:0 28px 24px 84px;
  font-size:1.5rem;line-height:2;color:var(--text-light);
  border-top:1px solid rgba(30,157,141,.08);padding-top:20px;
}

/* ========== COMPANY PAGE ========== */
.company_overview{
  padding:100px 0;
  background:linear-gradient(180deg,#fff 0%,rgba(230,247,245,.3) 100%);
  position:relative;overflow:hidden;
}
.company_overview::before{
  content:'Company';
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:min(12vw,16rem);color:rgba(30,157,141,.04);
  position:absolute;right:-2%;top:40px;
  line-height:1;pointer-events:none;white-space:nowrap;
}
.company_overview_inner{max-width:1160px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.company_overview_grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;margin-top:60px;}
.company_table_wrap{background:#fff;border-radius:20px;box-shadow:0 8px 40px rgba(11,45,66,.06);overflow:hidden;}
.company_table{width:100%;border-collapse:collapse;}
.company_table tr{border-bottom:1px solid rgba(30,157,141,.08);}
.company_table tr:last-child{border-bottom:none;}
.company_table th{
  width:32%;padding:20px 24px;
  background:rgba(30,157,141,.04);
  font-size:1.4rem;font-weight:600;color:var(--primary);
  text-align:left;vertical-align:top;
}
.company_table td{padding:20px 24px;font-size:1.4rem;color:var(--text);line-height:1.8;vertical-align:top;}
.company_table td a{color:var(--primary);}
.company_table td a:hover{text-decoration:underline;}
.company_map_block{position:relative;}
.company_map_frame{width:100%;height:0;padding-bottom:75%;border-radius:16px;overflow:hidden;box-shadow:0 12px 40px rgba(11,45,66,.1);position:relative;} /* aspect-ratio:4/3 の代替（iOS Safari / WKWebView 対応）*/
.company_map_frame iframe{position:absolute;inset:0;width:100%;height:100%;border:none;display:block;}
.company_access_card{
  background:linear-gradient(135deg,#fff 0%,rgba(230,247,245,.4) 100%);
  padding:28px 32px;border-radius:16px;
  border:1px solid rgba(30,157,141,.1);
  box-shadow:0 4px 20px rgba(11,45,66,.06);margin-top:24px;
}
.company_access_card h4{
  font-family:'Kanit',sans-serif;font-weight:600;
  font-size:1.1rem;letter-spacing:.15em;color:var(--primary);margin-bottom:12px;
}
.company_access_card p{font-size:1.4rem;line-height:1.9;color:var(--text-light);}
.company_access_card .tel_big{
  font-family:'Lexend Tera',sans-serif;font-weight:600;
  font-size:2.4rem;color:var(--primary);display:block;margin:8px 0 4px;letter-spacing:.02em;
}
.company_access_card .tel_big a{color:var(--primary);}
.office_section{padding:100px 0;background:var(--bg);}
.office_inner{max-width:1160px;margin:0 auto;padding:0 5%;}
.office_cards{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:60px;}
.office_card{background:#fff;border-radius:20px;box-shadow:0 8px 40px rgba(11,45,66,.06);overflow:hidden;transition:box-shadow .4s ease;}
.office_card:hover{box-shadow:0 20px 60px rgba(30,157,141,.12);}
.office_card_head{
  padding:32px 36px 24px;
  background:linear-gradient(135deg,var(--navy) 0%,#0a2535 100%);
  position:relative;overflow:hidden;
}
.office_card_head .badge{
  display:inline-block;margin-bottom:12px;
  font-family:'Kanit',sans-serif;font-weight:600;
  font-size:.9rem;letter-spacing:.2em;color:var(--primary);
  background:rgba(30,157,141,.15);padding:4px 12px;border-radius:20px;
}
.office_card_head h3{font-size:2rem;font-weight:700;color:#fff;}
.office_card_body{padding:28px 36px 36px;}
.office_info_row{display:flex;gap:16px;margin-bottom:16px;font-size:1.4rem;color:var(--text-light);line-height:1.8;}
.office_info_label{font-weight:600;color:var(--primary);flex-shrink:0;width:60px;}
.office_info_row a{color:var(--primary);}
.cert_section{
  padding:100px 0;
  background:linear-gradient(180deg,#fff 0%,rgba(245,166,35,.04) 100%);
}
.cert_inner{max-width:1160px;margin:0 auto;padding:0 5%;}
.cert_cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:60px;}
.cert_card{
  background:linear-gradient(135deg,#fff 0%,rgba(230,247,245,.4) 100%);
  padding:36px 28px;border-radius:16px;border:1px solid rgba(30,157,141,.1);
  text-align:center;transition:all .4s ease;
}
.cert_card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(30,157,141,.1);}
.cert_card_icon{font-size:3.2rem;margin-bottom:16px;display:block;}
.cert_card h4{font-size:1.6rem;font-weight:700;color:var(--navy);margin-bottom:10px;}
.cert_card p{font-size:1.3rem;color:var(--text-light);line-height:1.8;}

/* ========== CONTACT PAGE ========== */
.contact_page_section{
  padding:100px 0 120px;
  background:linear-gradient(180deg,#fff 0%,rgba(230,247,245,.3) 100%);
  position:relative;overflow:hidden;
}
.contact_page_section::before{
  content:'Contact';
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:min(12vw,16rem);color:rgba(30,157,141,.04);
  position:absolute;right:-2%;top:40px;
  line-height:1;pointer-events:none;white-space:nowrap;
}
.contact_page_inner{max-width:1160px;margin:0 auto;padding:0 5%;position:relative;z-index:2;}
.contact_quick{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:60px;margin-bottom:80px;}
.contact_quick_card{
  background:linear-gradient(135deg,#fff 0%,rgba(230,247,245,.4) 100%);
  border-radius:20px;padding:40px 36px;
  border:1px solid rgba(30,157,141,.1);
  box-shadow:0 8px 40px rgba(11,45,66,.06);
  text-align:center;transition:all .4s ease;
}
.contact_quick_card:hover{box-shadow:0 20px 60px rgba(30,157,141,.12);transform:translateY(-6px);}
.contact_quick_icon{font-size:3.6rem;margin-bottom:16px;display:block;}
.contact_quick_card h3{font-size:1.8rem;font-weight:700;color:var(--navy);margin-bottom:8px;}
.contact_quick_card .contact_quick_en{
  font-family:'Kanit',sans-serif;font-weight:600;
  font-size:1rem;letter-spacing:.2em;color:var(--primary);margin-bottom:20px;display:block;
}
.contact_quick_tel{
  font-family:'Lexend Tera',sans-serif;font-weight:600;
  font-size:clamp(2rem,3vw,3.2rem);color:var(--primary);
  display:block;letter-spacing:.02em;margin-bottom:8px;
  transition:color .3s;cursor:default;
}
.contact_quick_tel:hover{color:var(--primary-dark);}
.contact_quick_note{font-size:1.3rem;color:var(--text-light);line-height:1.7;}
.contact_form_wrap{
  background:#fff;border-radius:24px;
  box-shadow:0 8px 48px rgba(11,45,66,.08);
  padding:60px 64px;position:relative;overflow:hidden;
}
.contact_form_wrap::before{
  content:'';position:absolute;top:0;left:0;
  width:100%;height:6px;background:var(--grad);
}
.form_section_title{
  font-size:1rem;font-family:'Kanit',sans-serif;font-weight:600;
  letter-spacing:.2em;color:var(--primary);
  margin-bottom:32px;padding-bottom:12px;
  border-bottom:1px solid rgba(30,157,141,.15);
}
.form_grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.form_group{margin-bottom:24px;}
.form_group.full{grid-column:1/-1;}
.form_label{display:flex;align-items:center;gap:8px;font-size:1.4rem;font-weight:600;color:var(--navy);margin-bottom:10px;}
.form_label .required{font-size:1rem;background:var(--primary);color:#fff;padding:2px 8px;border-radius:4px;font-family:'Kanit',sans-serif;font-weight:600;letter-spacing:.05em;}
.form_label .optional{font-size:1rem;background:rgba(11,45,66,.1);color:var(--text-light);padding:2px 8px;border-radius:4px;font-weight:400;}
.form_input,.form_select,.form_textarea{
  width:100%;padding:14px 18px;
  font-size:1.5rem;font-family:'Noto Sans JP',sans-serif;
  color:var(--text);background:#fafafa;
  border:1.5px solid rgba(11,45,66,.12);border-radius:10px;
  outline:none;transition:border-color .3s,box-shadow .3s,background .3s;
  appearance:none;-webkit-appearance:none;
}
.form_input:focus,.form_select:focus,.form_textarea:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(30,157,141,.12);background:#fff;
}
.form_input::placeholder,.form_textarea::placeholder{color:rgba(11,45,66,.25);}
.form_select_wrap{position:relative;}
.form_select_wrap::after{
  content:'';pointer-events:none;
  position:absolute;right:16px;top:50%;transform:translateY(-50%);
  width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--primary);
}
.form_textarea{resize:vertical;min-height:160px;line-height:1.8;}
.form_radio_group{display:flex;flex-wrap:wrap;gap:12px;padding-top:4px;}
.form_radio{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:1.4rem;color:var(--text);}
.form_radio input[type="radio"]{display:none;}
.form_radio_mark{width:20px;height:20px;flex-shrink:0;border:2px solid rgba(11,45,66,.2);border-radius:50%;position:relative;transition:border-color .3s;}
.form_radio input:checked ~ .form_radio_mark{border-color:var(--primary);}
.form_radio_mark::after{
  content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:10px;height:10px;background:var(--primary);border-radius:50%;opacity:0;transition:opacity .3s;
}
.form_radio input:checked ~ .form_radio_mark::after{opacity:1;}
.form_privacy{
  margin:32px 0 28px;padding:20px 24px;
  background:rgba(30,157,141,.04);border-radius:10px;border:1px solid rgba(30,157,141,.1);
  font-size:1.3rem;color:var(--text-light);line-height:1.9;
}
.form_privacy a{color:var(--primary);text-decoration:underline;}
.form_check{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:1.4rem;color:var(--text);font-weight:500;margin-bottom:32px;}
.form_check input[type="checkbox"]{display:none;}
.form_check_mark{width:22px;height:22px;flex-shrink:0;border:2px solid rgba(11,45,66,.2);border-radius:5px;position:relative;transition:all .3s;}
.form_check input:checked ~ .form_check_mark{background:var(--primary);border-color:var(--primary);}
.form_check_mark::after{
  content:'';position:absolute;top:3px;left:7px;
  width:6px;height:11px;border-right:2.5px solid #fff;border-bottom:2.5px solid #fff;
  transform:rotate(45deg);opacity:0;transition:opacity .3s;
}
.form_check input:checked ~ .form_check_mark::after{opacity:1;}
.form_submit_btn{
  display:block;width:100%;max-width:360px;margin:0 auto;
  padding:20px 40px;background:var(--grad);
  color:#fff;font-size:1.6rem;font-weight:700;
  border:none;border-radius:14px;cursor:pointer;letter-spacing:.06em;
  transition:all .4s ease;box-shadow:0 8px 24px rgba(30,157,141,.3);
}
.form_submit_btn:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(30,157,141,.45);}
.form_submit_btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.form_note{text-align:center;margin-top:16px;font-size:1.3rem;color:var(--text-light);}
.form_result{display:none;text-align:center;padding:40px 20px;border-radius:16px;margin-top:32px;}
.form_result.success{background:rgba(30,157,141,.08);border:1px solid rgba(30,157,141,.2);}
.form_result.success p{color:var(--primary);font-size:1.6rem;font-weight:500;}
.form_result.error{background:rgba(220,50,50,.06);border:1px solid rgba(220,50,50,.15);}
.form_result.error p{color:#c0392b;font-size:1.5rem;}

/* ========== CF7 スタイル（企業サイト お問い合わせ）========== */

/* 送信ボタンラッパー */
.form_submit_wrap{margin-top:8px;text-align:center;}

/* acceptance チェックボックス（.form_acceptance_wrap の中に配置） */
.form_acceptance_wrap{margin:20px 0 28px;}
.form_acceptance_wrap label{
  display:flex;align-items:center;gap:10px;
  cursor:pointer;font-size:1.4rem;color:var(--text);font-weight:500;
  line-height:1.5;
}
.form_acceptance_wrap input[type="checkbox"]{
  display:inline-block !important;flex-shrink:0;
  width:20px;height:20px;margin:0;
  accent-color:var(--primary);cursor:pointer;
}
.form_acceptance_wrap a{color:var(--primary);text-decoration:underline;}

/* バリデーションエラー */
.contact_form_wrap .wpcf7-not-valid-tip{
  display:block;margin-top:5px;font-size:1.2rem;color:#c0392b;
}
.contact_form_wrap .form_input.wpcf7-not-valid,
.contact_form_wrap .form_textarea.wpcf7-not-valid{border-color:#e74c3c;}

/* 送受信レスポンス */
.contact_form_wrap .wpcf7-response-output{
  border-radius:10px;margin:16px 0 0;
  font-size:1.4rem;font-family:'Noto Sans JP',sans-serif;
  padding:14px 18px;
}

/* CF7 スピナー */
.contact_form_wrap .wpcf7-spinner{vertical-align:middle;margin-left:8px;}

/* ========== RESPONSIVE (sub-pages) ========== */
@media(max-width:900px){
  .service_card{grid-template-columns:1fr;align-items:stretch;gap:0;}
  .service_card:nth-child(even){direction:ltr;}
  /* モバイルは画像列単体→padding-bottomで高さを確保（iOS Safari / WKWebView 対応）*/
  .service_card_img{height:0;padding-bottom:56.25%;}
  .service_card_img_frame,.service_card_img_overlay{inset:16px;}
  .service_card_num{top:28px;left:28px;}
  .service_card_body{justify-content:flex-start;}
  .feature_strip_grid{grid-template-columns:repeat(2,1fr);}
  .philosophy_grid,.message_layout,.history_layout{grid-template-columns:1fr;}
  .strength_cards{grid-template-columns:1fr 1fr;}
  .company_overview_grid{grid-template-columns:1fr;}
  .office_cards{grid-template-columns:1fr;}
  .cert_cards{grid-template-columns:1fr 1fr;}
  .contact_quick{grid-template-columns:1fr;}
  .contact_form_wrap{padding:40px 28px;}
  .form_grid{grid-template-columns:1fr;}
  .form_group.full{grid-column:auto;}
  .flow_timeline::before{left:40px;}
  .flow_step_item{grid-template-columns:80px 1fr;}
  .flow_step_circle{width:80px;height:80px;}
  .flow_step_circle .step_num_big{font-size:2.4rem;}
  .flow_step_right{padding:12px 0 12px 24px;}
  .flow_step_card{flex-direction:column;gap:16px;}
}
@media(max-width:768px){
  .strength_card,.strength_card:nth-child(2),.strength_card:nth-child(3),.strength_card:nth-child(4){transform:none;}
}
@media(max-width:600px){
  .service_card_body{padding:28px;}
  .feature_strip_grid{grid-template-columns:1fr 1fr;gap:24px;}
  .strength_cards{grid-template-columns:1fr;}
  .cert_cards{grid-template-columns:1fr;}
  .company_table th{width:38%;padding:16px;}
  .company_table td{padding:16px;}
  .contact_form_wrap{padding:28px 20px;}
}