/* =====================================================
   corp-front.css — フロントページ専用スタイル
   corp-common.css と組み合わせて使用
   ===================================================== */

/* ========== 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;-webkit-backface-visibility:hidden;}
a{text-decoration:none;color:inherit;transition:all .4s cubic-bezier(.25,.46,.45,.94);}

/* ========== CSS VARIABLES (追加分) ========== */
:root{
  --accent-light:#ffd48f;
  --navy-light:#1a4d66;
  --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;
}
body.nav-open{overflow:hidden;}
.en{font-family:'Kanit',sans-serif;font-weight:400;}
.enb{font-family:'Kanit',sans-serif;font-weight:600;}
.en02{font-family:'Lexend Tera',sans-serif;font-weight:600;}

/* ========== UTILITIES ========== */
.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%;}
.pc_off{display:none;}
.sp_off{display:block;}
.grd{
  background:var(--grad);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* clip-path SVG定義（非表示） */
.all_wrap > svg[width="0"]{position:absolute;}

/* ========== INVIEW ANIMATIONS ========== */
.inview.bt{opacity:0;transform:translateY(60px);transition:all .6s ease;transition-delay:.2s;}
.inview.bt.move{opacity:1;transform:translateY(0);}
.inview.lr{opacity:0;transform:translateX(-60px);transition:all .5s cubic-bezier(.25,.46,.45,.94);}
.inview.lr.move{opacity:1;transform:translateX(0);}

/* ========== SECTION HEADING (フロントページ共通) ========== */
.section_header{
  display:flex;
  flex-direction:column;
  align-items:baseline;
}
.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;
  color:var(--navy);
}

/* ========== LINK BUTTON ========== */
.link_btn{
  position:relative;
  width:240px;
  height:60px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  color:#fff;
  background:var(--primary);
  letter-spacing:.04em;
  font-size:1.6rem;
  border:1px solid var(--primary);
  border-radius:5px;
  z-index:10;
  transition:all .4s cubic-bezier(.25,.46,.45,.94);
}
.link_btn span{
  position:relative;
  display:inline-block;
  padding-right:15px;
  z-index:10;
}
.link_btn span::after{
  content:'';
  display:block;
  width:10px;height:10px;
  position:absolute;
  right:-8px;top:4px;
  background:var(--primary-dark);
  z-index:10;
  border-radius:50%;
  transition:transform .4s cubic-bezier(.25,.46,.45,.94);
}
.link_btn:hover span::after{transform:scale(1.3);background:#fff;}
.link_btn:hover{background:#fff;color:var(--primary);}

/* ========== MAIN VISUAL ========== */
#mv{
  position:relative;
  width:100%;
  min-height:750px;
  z-index:50;
  background:var(--bg);
}
#mv::before{
  content:'';
  display:block;
  width:58.4vw;height:100%;
  position:absolute;
  left:0;bottom:0;
  z-index:1;
  background:#fff;
}
#mv #arrow{
  display:block;
  width:0;height:0;
  border-style:solid;
  border-right:182px solid #fff;
  border-width:0 0 0 182px;
  border-color:transparent transparent transparent #fff;
  position:absolute;
  left:58.4vw;bottom:0;
  z-index:1;
}
#mv .mv_slide{
  margin-top:106px;
  z-index:10;
  min-height:640px;
}
#mv .cp-01{
  clip-path:url(#clip-path);
}
.mv_slide .slick-slide{
  position:relative;
  margin:0 30px;
  width:75vw;
  height:730px;
  outline:none;
}
.mv_slide .slick-slide img{
  position:absolute;
  left:0;right:0;top:0;bottom:0;
  margin:auto;
  width:100%;height:100%;
  object-fit:cover;
  background-position:center center;
  background-size:cover;
  z-index:1;
  transition:transform ease .3s;
  border-radius:5px;
}
#mv .mv_slide .slick-dots{
  width:2px;
  top:50%;bottom:auto;
  right:9vw;
  height:auto;
  z-index:10;
  transform:translateY(-50%);
  position:absolute;left:auto;
}
#mv .mv_slide .slick-dots li{
  position:relative;
  width:2px;height:18px;
  margin:5px 0 0;
  padding:0;
  cursor:pointer;
  background:#c0c3d3;
  transition:all .4s cubic-bezier(.7,0,.84,0);
  transition-delay:.6s;
}
#mv .mv_slide .slick-dots li.slick-active{
  height:66px;
  background:var(--primary);
  transition-delay:.6s;
}
#mv .mv_slide .slick-dots li button{display:none;}
#mv .txt_area{
  position:absolute;
  left:10.71vw;
  top:540px;
  width:95%;
  max-width:1100px;
  z-index:100;
}
#mv .txt_area h2{margin-bottom:20px;}
#mv .txt_area h2 .kv_catch_main{
  display:block;
  font-size:clamp(2.8rem,3.8vw,4.5rem);
  font-weight:700;
  color:var(--navy);
  line-height:1.25;
  letter-spacing:.06em;
  text-shadow:0 0 1rem #fff;
}
#mv .txt_area > span{
  display:block;
  font-size:2.1rem;
  line-height:1.58;
  color:var(--primary-dark);
  text-shadow:0 0 .3rem #fff;
}
#mv .scroll{
  display:block;
  position:absolute;
  left:6.5vw;
  top:88vh;
  width:35px;
  text-align:center;
  font-size:1rem;
  color:var(--primary-dark);
  letter-spacing:.1em;
  z-index:100;
}
#mv .scroll::after{
  content:'';
  display:block;
  position:absolute;
  left:0;right:0;
  margin:auto;
  top:16px;
  width:1px;
  height:300px;
  background:linear-gradient(180deg,var(--primary),var(--primary-dark),var(--navy));
  background-size:200% 200%;
  animation:scrollLine 5s ease infinite;
}
@keyframes scrollLine{
  0%{background-position:50% 0%}
  50%{background-position:50% 100%}
  100%{background-position:50% 0%}
}

/* ========== ABOUT SECTION ========== */
.about_section{
  position:relative;
  padding:120px 0 100px;
  background:#fff;
  z-index:10;
}
.about_section .link_btn{
  position:absolute;
  right:0;top:10px;
}
.about_section .con_1054{display:block;}
.about_top{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
  align-items:start;
}
.about_left .section_header{margin-bottom:40px;}
.about_lead{
  font-size:1.7rem;
  line-height:1.9;
  color:var(--navy);
  font-weight:500;
  margin-bottom:24px;
}
.about_text{
  font-size:1.5rem;
  line-height:2;
  color:var(--text-light);
  margin-bottom:40px;
}
.strengths{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:60px;margin-bottom:0;}
.strength_item{
  display:flex;align-items:center;gap:15px;
  padding:15px;
  background:var(--primary-light);
  border-left:4px solid var(--primary);
  border-radius:0 4px 4px 0;
}
.strength_item .num{
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:2rem;color:var(--primary);
  line-height:1;min-width:28px;
}
.strength_item p{font-size:1.5rem;font-weight:500;color:var(--navy);}
.about_right{position:relative;}
.about_imgs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.about_img_item{
  position:relative;
  border-radius:4px;
  overflow:hidden;
  height:0;padding-bottom:75%; /* aspect-ratio:4/3 の代替（iOS Safari / WKWebView 対応）*/
  background:var(--bg);
}
.about_img_item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.about_img_item:first-child{
  grid-column:1/-1;
  padding-bottom:120%; /* aspect-ratio:5/6 の代替 */
}
.about_imgs--single{display:block;margin-top:125px;}
.about_img_item--full{padding-bottom:75%;border-radius:6px;} /* aspect-ratio:4/3 の代替 */

/* ========== SERVICE SECTION ========== */
.service{
  position:relative;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  flex-direction:row-reverse;
  z-index:50;
  padding:100px 0 0;
  background:var(--bg);
}
.service .text_area{width:28.85%;display:flex;align-items:center;justify-content:center;}
.service .text_inr{width:70%;}
.service .v_txt{
  margin:30px 0 30px 15px;
  font-size:1.8rem;
  line-height:2.1;
  color:var(--text-light);
  writing-mode:vertical-rl;
  -webkit-writing-mode:vertical-rl;
  font-feature-settings:'vkna';
  letter-spacing:.1em;
}
.service .service_slide{width:71.15%;position:relative;}
.service .service_slide .slick-dots{display:none!important;}
.service .img_area{width:728px;margin:0 5px;outline:none;}
.service .img_area img{
  border-radius:5px;
  width:100%;height:420px;
  object-fit:cover;display:block;
}
.service .con_tit{font-size:clamp(3.5rem,5vw,7.5rem);}

.service_list{
  position:relative;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:2px;
  width:100%;
  margin-top:clamp(75px,5.35vw,100px);
}
.service_list .service_box{
  display:block;
  width:calc(100% / 3 - 2px);
  height:350px;
  position:relative;
  border-radius:5px;
}
.service_list .service_box:hover{
  transform:scale(1.039);
  z-index:30;
  box-shadow:0 6px 9px 0 rgba(0,0,0,.3);
}
.service_list .bg_area{
  position:absolute;
  left:0;top:0;bottom:0;right:0;
  width:100%;height:100%;
  z-index:1;
  background:var(--navy) center center / cover no-repeat;
  border-radius:5px;
}
.service_list .service_box:nth-child(1) .bg_area{background-color:#0b2d42;}
.service_list .service_box:nth-child(2) .bg_area{background-color:#1e4d42;}
.service_list .service_box:nth-child(3) .bg_area{background-color:#0b3d32;}
.service_list .service_box:nth-child(4) .bg_area{background-color:#0b2d42;}
.service_list .service_box:nth-child(5) .bg_area{background-color:#1e4d42;}
.service_list .bg_area::after{
  content:'';display:block;
  width:100%;height:100%;
  position:absolute;left:0;top:0;
  z-index:2;border-radius:5px;
  background:linear-gradient(0deg,rgba(14,120,108,1) 0%,rgba(10,80,70,1) 53%,rgba(2,8,50,1) 100%);
  opacity:.8;
  transition:all .5s cubic-bezier(.25,.46,.45,.94);
}
.service_list .service_box:hover .bg_area::after{opacity:0;}
.service_list .bg_area::before{
  content:'';display:block;
  width:100%;height:100%;
  position:absolute;left:0;top:0;
  border-radius:5px;z-index:2;
  background:#000;opacity:0;
  transition:all .5s cubic-bezier(.25,.46,.45,.94);
}
.service_list .service_box:hover .bg_area::before{opacity:.5;}
.service_list .text_box{
  display:flex;
  align-items:center;justify-content:center;
  color:#fff;height:100%;
}
.service_list .num{
  position:relative;display:block;
  text-align:center;
  font-size:1.6rem;color:#fff;
  z-index:10;
  transition:all .5s cubic-bezier(.25,.46,.45,.94);
}
.service_list .num.pc_off{display:none;}
.service_list h3{
  position:relative;display:block;
  font-size:min(2.4rem,1.57vw + 1rem);
  font-weight:700;text-align:center;
  margin:25px auto 40px;
  z-index:10;
  transition:all .5s cubic-bezier(.25,.46,.45,.94);
}
.service_list a:hover h3{text-shadow:1px 1px 3px rgba(0,0,0,.3);}
.service_list p{
  position:relative;
  max-height:0;visibility:hidden;opacity:0;
  width:90%;max-width:320px;
  margin:0 auto;
  font-size:1.3rem;line-height:2.1;
  letter-spacing:0;z-index:10;
  font-weight:700;
  transition:all .5s cubic-bezier(.25,.46,.45,.94);
}
.service_list a:hover p{
  max-height:400px;margin-bottom:43px;
  visibility:visible;opacity:1;
  text-shadow:1px 1px 3px rgba(0,0,0,.3);
}
.service_list h4{
  position:relative;
  width:195px;height:50px;
  display:flex;align-items:center;justify-content:center;
  box-sizing:border-box;
  border:1px solid #fff;
  letter-spacing:.04em;font-size:1.4rem;
  border-radius:5px;z-index:10;
  margin:0 auto;
  transition:background .5s cubic-bezier(.25,.46,.45,.94);
}
.service_list h4 span{
  position:relative;display:inline-block;
  z-index:10;
  transition:color .5s cubic-bezier(.25,.46,.45,.94);
}
.service_list a:hover h4{background:#fff;}
.service_list a:hover h4 span{color:var(--primary);}

/* ========== FLOW SECTION ========== */
.flow_section{
  padding:160px 0;
  background:#fff;
}
.flow_section .section_header{text-align:center;}
.flow_steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin:80px 0;
  position:relative;
}
.flow_steps::before{
  content:'';position:absolute;
  top:44px;left:12.5%;right:12.5%;
  height:2px;background:var(--primary-light);
  z-index:0;
}
.flow_step{
  text-align:center;
  position:relative;z-index:1;
  padding:0 16px;
}
.flow_step .num{
  display:flex;align-items:center;justify-content:center;
  width:88px;height:88px;
  margin:0 auto 24px;
  background:var(--primary);
  border-radius:50%;
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:3rem;color:#fff;
  box-shadow:0 4px 24px rgba(30,157,141,.35);
}
.flow_step h3{font-size:1.9rem;font-weight:700;color:var(--navy);margin-bottom:12px;}
.flow_step p{font-size:1.5rem;color:var(--text-light);line-height:1.8;}
.flow_link{text-align:center;margin-top:60px;}
.flow_link a{margin:auto;}

/* ========== COMPANY SECTION ========== */
.company_section{
  padding:120px 0;
  background:var(--bg);
  overflow:hidden;
}
.company_feature{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
  max-width:1160px;
  margin:0 auto;
  padding:0 5%;
}
.company_accent_line{
  width:40px;height:4px;
  background:var(--primary);
  margin-bottom:16px;
}
.company_feature h3{
  font-size:clamp(1.8rem,2.2vw,2.4rem);
  font-weight:700;color:var(--navy);
  line-height:1.5;margin-bottom:20px;
}
.company_pillars{
  display:flex;flex-direction:column;
  margin-bottom:40px;
}
.company_pillar{
  display:flex;align-items:center;gap:20px;
  padding:16px 12px;
  border-bottom:1px solid rgba(11,45,66,.1);
  transition:background .3s;
}
.company_pillar:first-child{border-top:1px solid rgba(11,45,66,.1);}
.company_pillar:hover{background:var(--primary-light);}
.company_pillar_num{
  font-family:'Kanit',sans-serif;font-weight:700;
  font-size:2rem;color:var(--primary);
  flex-shrink:0;width:32px;line-height:1;
}
.company_pillar_text{font-size:1.4rem;line-height:1.8;color:var(--navy);}
.company_pillar_sub{font-size:1.2rem;color:var(--text-light);line-height:1.7;}
.company_pillar_sub a{color:var(--primary);}
.company_feature_img{position:relative;}
.company_feature_img .company_map{
  width:100%;
  height:0;padding-bottom:133.33%; /* aspect-ratio:3/4 の代替（iOS Safari / WKWebView 対応）*/
  border-radius:4px;overflow:hidden;
  position:relative;
}
.company_feature_img .company_map iframe{
  width:100%;height:100%;
  border:none;
  position:absolute;inset:0;
}
.company_contact{
  margin-top:24px;
  padding:24px 28px;
  background:#fff;border-radius:4px;
}
.company_contact_label{
  font-size:1.3rem;
  color:var(--text-light);
  margin-bottom:8px;
  font-family:'Kanit',sans-serif;
  font-weight:600;
  letter-spacing:.1em;
}
.company_contact .tel_num{
  font-family:'Lexend Tera',sans-serif;font-weight:600;
  font-size:2.8rem;color:var(--primary);
  letter-spacing:.04em;
  display:block;margin-bottom:4px;
}
.company_contact .tel_num a{color:var(--primary);}
.company_contact .hours{font-size:1.3rem;color:var(--text-light);}

/* ========== RECRUIT SECTION ========== */
.recruit_section{
  padding:120px 0;
  background:var(--navy);
  position:relative;overflow:hidden;
}
.recruit_section__bg{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  opacity:.25;pointer-events:none;
}
.recruit_inner{position:relative;z-index:1;text-align:center;}
.recruit_section .con_s_tit{color:#fff;}
.recruit_catch{
  font-size:clamp(2.6rem,4vw,4.8rem);
  font-weight:700;color:#fff;
  line-height:1.25;margin-bottom:32px;
}
.recruit_catch_accent{
  color:var(--primary);
  font-size:clamp(2rem,3vw,3.6rem);
}
.recruit_body{
  max-width:680px;margin:0 auto 48px;
  font-size:1.6rem;line-height:2;
  color:rgba(255,255,255,.75);
}
.recruit_section .link_btn{background:#fff;color:var(--primary);margin:0 auto;}
.recruit_section .link_btn:hover{background:var(--primary);color:#fff;}

/* ========== SLICK CAROUSEL HELPERS ========== */
.slick-prev,.slick-next{appearance:none;-webkit-appearance:none;background:transparent!important;border:none!important;outline:none!important;box-shadow:none!important;color:transparent!important;font-size:0!important;line-height:0!important;}

/* ========== SECTION HEADER HELPERS ========== */
.section_header{margin-bottom:48px;}
.section_header .con_tit{display:block;}
.about_left .section_header{margin-bottom:40px;}

/* ========== RESPONSIVE ========== */
@media screen and (max-height:750px){
  #mv .txt_area{top:430px;}
}
@media screen and (max-width:1300px){
  #mv .scroll{left:3vw;}
}
@media screen and (max-width:1050px){
  #mv .mv_slide .slick-dots{left:auto;right:2vw;}
  .mv_slide .slick-slide{margin:0 5vw;width:90vw;height:730px;}
  #mv .txt_area{left:0;right:0;}
  #mv .scroll{left:2vw;}
}
@media screen and (max-width:900px){
  .company_feature{grid-template-columns:1fr;gap:40px;}
}
@media screen and (max-width:800px){
  #mv::before{display:none;}
  #mv #arrow{display:block;width:75%;height:auto;position:absolute;left:0;bottom:0;border:none!important;}
  #mv .mv_slide{margin-top:130px;min-height:auto;}
  #mv .cp-01{clip-path:url(#clip-path-sp);}
  .mv_slide .slick-slide{margin:0 -.8vw;width:90vw;height:86.67vw;min-height:auto;}
  #mv .mv_slide .slick-dots{display:block;width:100%;height:2px;transform:translateX(-2px);top:-22px;left:auto;right:4.2vw;text-align:right;}
  #mv .mv_slide .slick-dots li{width:10px;height:2px;margin:0 2px;display:inline-block;}
  #mv .mv_slide .slick-dots li.slick-active{height:2px;width:37px;background:var(--primary);}
  #mv .txt_area{position:relative;top:auto;width:100%;padding-left:6.8vw;padding-right:6.8vw;padding-bottom:48px;box-sizing:border-box;}
  #mv .txt_area h2{width:100%;margin-bottom:16px;margin-top:25px;}
  #mv .txt_area > span{font-size:clamp(1rem,3.2vw,1.4rem);display:block;margin-top:12px;line-height:1.8;}
  #mv .scroll{display:none;}
  .about_section{padding:56px 0 48px;}
  .about_top{grid-template-columns:1fr;}
  .about_section .link_btn{position:static;margin-top:32px;}
  .about_lead{margin-bottom:16px;}
  .about_text{margin-bottom:24px;}
  .strengths{grid-template-columns:1fr;gap:12px;margin-top:32px;margin-bottom:24px;}
  .about_imgs--single{margin-top:32px;}
  .flow_section{padding:56px 0;}
  .company_section{padding:56px 0;}
  .recruit_section{padding:56px 0;}
  .service{display:block;margin:80px auto 60px;padding:0;}
  .service .text_area{width:100%;display:block;text-align:center;}
  .service .text_inr{width:90%;margin:0 auto 20px;max-width:800px;}
  .service .v_txt{margin-top:35px;writing-mode:horizontal-tb;-webkit-writing-mode:horizontal-tb;display:inline-block;font-size:1.2rem;line-height:2.1;text-align:center;margin-bottom:40px;}
  .service .service_slide{width:90%;}
  .service .img_area{width:300px;margin:0 5px;}
  .service .img_area img{height:200px;}
  .service_list{display:block;width:100%;margin-top:45px;min-height:0;}
  .service_list .service_box{width:100%;height:auto;border-radius:0!important;padding-bottom:48px;border-bottom:1px solid rgba(0,0,0,.08);}
  .service_list .service_box:last-child{border-bottom:none;padding-bottom:0;}
  .service_list .service_box:hover{transform:scale(1);box-shadow:none;}
  .service_list .bg_area{position:relative;left:auto;top:auto;bottom:auto;right:auto;margin:0 0 25px 10.4%;width:89.6%;height:clamp(180px,48vw,230px);border-radius:5px 0 0 5px;}
  .service_list .bg_area::before,.service_list .bg_area::after{display:none;}
  .service_list .bg_area .num{display:block;color:var(--primary);width:90px;position:absolute;transform:rotate(-90deg);top:105px;left:calc(-4vw - 50px);font-size:1.2rem;font-weight:500;}
  .service_list .text_box{display:block;height:auto;color:var(--navy);width:80%;margin:0 auto;}
  .service_list .text_box .num{display:none;}
  .service_list h3{font-size:1.8rem;text-align:left;margin:25px auto 15px;}
  .service_list p{max-height:999px;visibility:visible;opacity:1;width:100%;max-width:800px;margin:0;font-size:1.2rem;line-height:2;letter-spacing:.02em;}
  .service_list a:hover p{max-height:999px;margin-bottom:0;text-shadow:none;}
  .service_list h4{width:158px;height:42px;font-size:1.1rem;background:#fff;margin:20px 0 45px;overflow:hidden;border:none;color:var(--primary-dark);}
  .flow_steps{grid-template-columns:repeat(2,1fr);gap:48px;}
  .flow_steps::before{display:none;}
}
@media screen and (max-width:640px){
  #mv{min-height:560px;}
  .mv_slide .slick-slide{height:520px;}
  .flow_section{padding:80px 0;}
  .recruit_section{padding:80px 0;}
}
