/*
theme Name: default-themes
Author: default-themes
Description: original theme
version： 1.0.0
*/

/**
 * CSS variables（デザイン基準幅）
 * vw計算で使う基準値。calc(N / var(--design-pc) * 100vw) の形で参照する。
 * 例：padding-top: calc(80 / var(--design-pc) * 100vw);  // 80px相当 @ vw=1440
 *
 * 基準幅を変更する場合（例：1440→1920）、ここの値だけ変えれば全箇所に反映される。
 */
:root {
  --design-pc: 1440;
  --design-sp: 375;
}

/**
 * reset css
 */
html { overflow-x: hidden; background: #FFF; font-size: 16px; }
body { overflow-x: hidden; min-width: 320px; -webkit-text-size-adjust: none; -ms-text-size-adjust: none; word-wrap: break-word; }
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, object, iframe, pre, code, p, blockquote, form, fieldset, legend, table, th, td, caption, tbody, tfoot, thead, article, aside, figure, footer, header, hgroup, menu, nav, section, audio, video, canvas { margin: 0; padding: 0; }
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, menu { display: block; }
audio:not([controls]) { display: none; height: 0; }
[hidden] { display: none; }
table { border-collapse: collapse; border-spacing: 0; }
fieldset, img {  border: none; }
address, caption, cite, code, dfn, em, strong, th, var, b { font-style: normal; font-weight: normal; }
ul, ol, menu { list-style: none; }
caption, th { text-align: left; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; }
q:before, q:after { content: ''; }
abbr, acronym { border: none; font-variant: normal; }
sup { vertical-align: text-top; }
sub { vertical-align: text-bottom; }
input, textarea, select { font-family: inherit; font-size: inherit; font-weight: inherit; }
legend { color: #333; }
a { text-decoration: none; color: #333; }
.pc a, .pc object a, .pc input[type="submit"]{ -webkit-transition: all 0.5s; -moz-transition: all 0.5s; -ms-transition: all 0.5s; -o-transition: all 0.5s; transition: all 0.5s; }
.pc a:hover, .pc object a:hover, .pc input[type="submit"]:hover { opacity: .5; -webkit-opacity: .5; -moz-opacity: .5; -ms-opacity: .5; -o-opacity: .5; }
a img, map a { border: none; }
a:hover, a:active, a:focus { outline: 0; }
embed { width: 100%; }
audio, canvas, video { display: inline-block; }
audio:not([controls]) { display: none; height: 0; }
img, object, embed { max-width: 100%; height: auto; }
object, embed { height: 100%; }
img { vertical-align: bottom; -ms-interpolation-mode: bicubic; }
div { vertical-align: top; }
strong { font-weight: normal; }
em { font-style: normal; }
select, input, button, textarea, button { font: 99% arial, sans-serif; }
pre, code, kbd, samp, tt { font-family: monospace; line-height: 1; }
a, img, button, input[type="button"], input[type="submit"], .touch-hover { -webkit-tap-highlight-color: transparent; }
* { -webkit-box-sizing: border-box; box-sizing: border-box; }
*::before, *::after { -webkit-box-sizing: border-box; box-sizing: border-box; }
table { empty-cells: show; font-size: inherit; font: 100%; }
/* IE10,11対策 main要素の高さと幅を認識させる */
@media all and (-ms-high-contrast: none){ main { display: block; } }
input { line-height: 1; }
form img, input, select { vertical-align: middle; }
textarea { resize: none; }
select { padding: 1px; }
legend { display: none; }
input, select, textarea, button { font-size: 1.6rem; vertical-align: middle; color: #333; height: 35px; }
textarea { height: auto; }
input[type="text"], input[type="tel"], input[type="email"], input[type="password"], select, textarea { -webkit-appearance: none; font-size: 1.6rem; width: 100%; padding: 1rem; border: 1px solid #ccc; background: #fff; font-weight: normal; border-radius: 3px; }
/* ======= outline ======= */
input[type="email"], input[type="text"], input[type="number"], input[type="password"], textarea, select { outline: none; }
/* ======= label ======= */
label { margin-right: 1rem; line-height: 1; }

/**
 * admin editor
 */
body#tinymce { margin: 15px; }
/**
 * body, h1, h2, h3, h4, h5, p
 */
body {
  font-family: "Noto Sans JP", "Noto Sans Japanese", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: clamp(15px, 0.95vw, 16px);
  color: #313131;
  font-weight: 400;
  letter-spacing: 0.8px;
  line-height: 1.5;
  font-kerning: normal;
  text-rendering: optimizelegibility;
  -webkit-font-smoothing: antialiased;
}

h1 { font-size: clamp(24px, 2.4vw, 32px); }
h2 { font-size: clamp(22px, 2vw, 28px); }
h3 { font-size: clamp(20px, 1.6vw, 24px); }
h4 { font-size: clamp(18px, 1.3vw, 20px); }
h5 { font-size: clamp(16px, 1.1vw, 18px); }
p { font-size: clamp(15px, 0.95vw, 16px); }
p, li { line-height: 1.85; }
p { margin-bottom: 30px; }
iframe { width: 100%; }
@media screen and (max-width: 820px){
  body { letter-spacing: 0.08rem; }
  p { margin-bottom: 3rem; }
}

/**
 * utility
 */
/* display */
.noDisplay { display: none; }
.block { display: block; }
.inline { display: inline; }
.inline-block { display: inline-block; }
.flex{ display: -webkit-box; display: -ms-flexbox; display: flex; flex-wrap: wrap; }
.flex-reverse { flex-flow: row-reverse; }
.pcNone { display: none; }
.spNone { display: block; }
@media screen and (max-width: 820px) {
  .pcNone { display: block; }
  .spNone { display: none; }
}
/* position */
.static { position: static; }
.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.center { text-align: center; }
.left { text-align: left; }
.right { text-align: right; }
/* float */
.leftBox { float: left; }
.rightBox { float: right; }
.nofloat { float: none !important; }
.clearfix { zoom: 1; }
.clearfix:after { display: block;  clear: both; content: ""; }
.clear { clear: both !important; }
/* IE6 */
* html .clearfix { zoom: 1; }
/* IE7 */
*:first-child + html .clearfix { zoom: 1; }
/* weight */
.bold { font-weight: bold; }
/* color */
.red { color: #F00; }
.blue { color: #00F; }
.white { color:#FFF; }
.yellow { color: #FF0; }
.pink { color: #ff3399; }
.orange { color: #FC5D17; }

/* maker */
.yellow-maker {
  font-weight: bold;
  background-image: linear-gradient(transparent 60%, #fff100 60%);
}

/* fadein */
/* fadein trigger */
.fadeIn_trigger,
.fadeUp_trigger,
.fadeDown_trigger,
.fadeLeft_trigger,
.fadeRight_trigger { opacity:0; }
/* その場で */
.fadeIn {
  animation-name:fadeInAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeInAnime {
  from { opacity: 0; }
  to { opacity: 1; }
}
/* 下から */
.fadeUp {
  animation-name:fadeUpAnime;
  animation-duration:0.5s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* 上から */
.fadeDown {
  animation-name:fadeDownAnime;
  animation-duration:0.5s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeDownAnime {
  from {
    opacity: 0;
    transform: translateY(-100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* 左から */
.fadeLeft {
  animation-name:fadeLeftAnime;
  animation-duration:0.5s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeLeftAnime {
  from {
    opacity: 0;
    transform: translateX(-100px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/* 右から */
.fadeRight {
  animation-name:fadeRightAnime;
  animation-duration:0.5s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeRightAnime {
  from {
    opacity: 0;
    transform: translateX(100px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.container {
  width: 100%;
  padding: 0 5%;
}
@media screen and (max-width: 1100px){
  /*.container { margin: 0 1.2rem; }*/
}

/**
 * content form
 */
.content_frm1 main {
  margin-right: 0;
  max-width: 100%;
  width: auto;
}
.content_frm2 .container.flex { flex-wrap: nowrap; }
.content_frm2 main {
  margin-right: 50px;
  max-width: 750px;
  width: 750px;
}
.content_frm2 aside#sidebar { max-width: 300px; }
@media screen and (max-width: 820px){
  .content_frm2 .flex { display: block; }
  .content_frm2 main,
  .content_frm2 aside#sidebar {
    max-width: 100%;
    width: 100%;
  }
  .content_frm2 main { margin-right: 0; }
}

main,
#sidebar { margin: 100px 0; }
.main_content { margin-bottom: 100px; }
@media screen and (max-width: 820px){
  main,
  #sidebar { margin: 40px  0; }
  .main_content { margin-bottom: 5rem; }
}

/**
 * transition
 */
.pc .posts_frm img,
.pc .posts_frm .posts_title,
.pc .pagetop,
.pc #sidebar a::after,
.pc .cta_banner a::before {
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -ms-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}
.pc #sidebar .sidebar_contact_content a::after,
.pc #sidebar .sidebar_tel_content a::after {
  -webkit-transition: all 0s;
  -moz-transition: all 0s;
  -ms-transition: all 0s;
  -o-transition: all 0s;
  transition: all 0s;
}

/**
 * opacity
 */
#global_nav_pc .gnav_child,
#global_nav_sp {
  opacity: 0;
  -webkit-opacity: 0;
  -moz-opacity: 0;
  -ms-opacity: 0;
  -o-opacity: 0;
}
.pc .pagetop:hover {
  opacity: .5;
  -webkit-opacity: .5;
  -moz-opacity: .5;
  -ms-opacity: .5;
  -o-opacity: .5;
}
.pc a:hover,
.pc object a:hover,
.pc input[type="submit"]:hover,
.pc #global_nav_pc a:hover,
.pc #global_nav_pc .global_nav_list li:hover .gnav_child,
.pc #breadcrumbs a:hover,
.pc .tag_list a:hover,
.pc #footer .footer_right a:hover,
#global_nav_sp.navOpen_active,
.pc .cta_banner a:hover  {
  opacity: 1;
  -webkit-opacity: 1;
  -moz-opacity: 1;
  -ms-opacity: 1;
  -o-opacity: 1;
}

/**
 * posts form
 */
.posts_frm {
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 20px;
  width: 100%;
  background: #fff;
}
.posts_frm .flex { display: flex; }
.posts_frm .posts_image {
  overflow: hidden;
  width: 27%;
}
.posts_frm .posts_content {
  padding-left: 25px;
  width: 73%;
}
.posts_frm .posts_title { margin-bottom: 10px; }
.posts_frm .posts_description { margin-bottom: 15px; }
.posts_frm .posts_title h2,
.posts_frm .posts_title h3,
.posts_frm .posts_title h4,
.posts_frm .posts_title h5 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  font-size: 15px;
  font-family: "ZenKakuGothicNew-M";
}
.posts_frm .posts_description,
.posts_frm .posts_description small {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 14px;
}
.posts_frm .posts_cat,
.posts_frm .posts_cat a,
.posts_frm .posts_date,
.posts_frm .posts_view {
  font-size: 12px;
  font-family: "ZenKakuGothicNew-R";
}
.posts_frm .posts_cat,
.posts_frm .posts_cat a {
  display: inline-block;
  padding: 2px 5px 1px;
  line-height: 1.2;
  color: #fff;
  background: #047C78;
  border-radius: 3px;
}
.posts_frm .posts_cat::before {
  content: '\f02d';
  font-family: 'Font Awesome 6 Free';
  font-weight: bold;
  margin-right: 5px;
}
.posts_frm .posts_date,
.posts_frm .posts_view { color: #959595; }
.posts_frm .posts_date::before,
.posts_frm .posts_view i { margin-right: 3px; }
.posts_frm .posts_date::before {
  content: '\f017';
  font-family: 'Font Awesome 6 Free';
  font-weight: bold;
}
.posts_frm .posts_cat,
.posts_frm .posts_date { margin-right: 15px; }
/* posts form 縦 */
.posts_frm_vertical {
  display: flex;
  flex-wrap: wrap;
}
.posts_frm_vertical .posts_frm {
  margin-bottom: 30px;
  margin-right: 2%;
  padding-bottom: 0;
  width: 32%;
  border-radius: 0;
  box-shadow: 0 0 20px #eee;
}
.posts_frm_vertical .posts_frm:nth-child(3n) { margin-right: 0; }
.posts_frm_vertical .flex { display: block; }
.posts_frm_vertical .posts_image,
.posts_frm_vertical .posts_content { width: 100%; }
.posts_frm_vertical .posts_image img {
  object-fit: cover;
  width: 100%;
  height: 145px;
}
.posts_frm_vertical .posts_content { padding: 10px 15px; }
.posts_frm_vertical .posts_title { margin-bottom: 5px; }
.posts_frm_vertical .posts_title h2 {
  height: 70px;
  font-weight: normal;
}
.posts_frm_vertical .posts_content .flex { display: flex; }
.posts_frm .new {
  position: absolute;
  top: 0;
  background: linear-gradient(to top left,transparent 50%,#c00 50%);
  opacity: .9;
  z-index: 10;
}
.posts_frm .new,
.posts_frm .new p {
  width: 50px;
  height: 50px;
}
.posts_frm .new p {
  text-align: center;
  margin-top: 0;
  margin-left: 2px;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  -webkit-transform: rotate(-50deg);
  -moz-transform: rotate(-50deg);
  -ms-transform: rotate(-50deg);
  -o-transform: rotate(-50deg);
}
.posts_frm .number p {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  margin: 0;
  padding-left: 7px;
  width: 35px;
  height: 35px;
  line-height: 23px;
  color: #777;
  font-size: 12px;
  font-family: 'ZenKakuGothicNew-B';
  background: #f1f1f1;
  border: solid 1px #ddd;
  border-top-left-radius: 3px;
  z-index: 1;
}
.posts_frm:nth-child(1) .number p {
  background: -moz-linear-gradient(to top left,transparent 50%,#E8E00C 50%);
  background: -webkit-linear-gradient(to top left,transparent 50%,#E8E00C 50%);
  background: linear-gradient(to top left,transparent 50%,#E8E00C 50%);
}
.posts_frm:nth-child(2) .number p {
  background: -moz-linear-gradient(to top left,transparent 50%,#E5E5E5 50%);
  background: -webkit-linear-gradient(to top left,transparent 50%,#E5E5E5 50%);
  background: linear-gradient(to top left,transparent 50%,#E5E5E5 50%);
}
.posts_frm:nth-child(3) .number p {
  background: -moz-linear-gradient(to top left,transparent 50%,#E89C0C 50%);
  background: -webkit-linear-gradient(to top left,transparent 50%,#E89C0C 50%);
  background: linear-gradient(to top left,transparent 50%,#E89C0C 50%);
}
.pc .posts_frm a:hover .posts_title {
  text-decoration: underline;
  color: #0134de;
}
.pc .posts_frm a:hover img { transform: scale(1.2, 1.2); }
@media screen and (max-width: 820px){
  .posts_frm {
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: solid 1px #e6e6e6;
  }
  .posts_frm .posts_image { width: 31%; }
  .posts_frm .posts_content {
    padding-left: 1.5rem;
    width: 69%;
  }
  .posts_frm .posts_title { margin-top: 0; }
  .posts_frm .posts_title h2 { font-size: 1.4rem; }
  .posts_frm .posts_cat,
  .posts_frm .posts_cat a {
    padding-bottom: .2rem;
    padding: .4rem .7rem .3rem;
  }
  .posts_frm .posts_description { display: none; }
  .posts_frm_vertical .posts_frm {
    margin-right: 0;
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    width: 100%;
    box-shadow: none;
  }
  .posts_frm_vertical .posts_frm .flex { display: flex; }
  .posts_frm_vertical .posts_content {
    padding-top: 0;
    padding-bottom: 0;
    padding-right: 0;
  }
  .posts_frm_vertical .posts_title h2,
  .posts_frm_vertical .posts_image img { height: auto; }
  .posts_frm_vertical .posts_title { margin-bottom: 1rem; }
}

/**
 * header
 */
@media screen and (max-width: 820px){
}

/**
 * nav pc
 */
#global_nav_pc {
  position: relative;
  background: #0134de;
}
#global_nav_pc ul { display: flex; }
#global_nav_pc li { padding: 10.2px 5px 10.2px 0; }
#global_nav_pc li:last-child { padding-right: 0; }
#global_nav_pc a {
  position: relative;
  display: block;
  padding: 5px 15px;
  color: #fff;
  font-size: 15px;
  border-radius: 50px;
}
#global_nav_pc li a::after {
  content: "\f13a";
  font-family: 'Font Awesome 6 Free';
  font-weight: bold;
  font-size: 16px;
  margin-left: 5px;
}
#global_nav_pc .gnav_child {
  position: absolute;
  top: 59px;
  left: 0;
  padding: 35px 0 33px;
  width: 100%;
  background: #002291;
  pointer-events: auto;
  z-index: -1;
}
#global_nav_pc .sub-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: unset;
  padding-left: 20px;
}
#global_nav_pc .sub-menu li {
  margin-bottom: 2px;
  padding: 0;
  width: 25%;
}
#global_nav_pc .sub-menu li a {
  display: inline;
  padding-left: 0;
  padding-right: 0;
}
#global_nav_pc .sub-menu li:last-child a {
  padding-left: 0;
  padding-right: 0;
}
#global_nav_pc .sub-menu li a::after {
  content: "";
  font-size: 0;
  margin-left: 0;
}
#global_nav_pc .sub-menu li a::before {
  position: relative;
  top: -3px;
  content: "\f054";
  font-family: 'Font Awesome 6 Free';
  font-weight: bold;
  font-size: 9px;
  margin-right: 5px;
  color: #fff;
}
.pc #global_nav_pc li:hover a {
  color: #0134de;
  background: #fff;
}
.pc #global_nav_pc li:hover .sub-menu a {
  color: #fff;
  background: #002291;
}
.pc #global_nav_pc .sub-menu a:hover::after {
  position: absolute;
  content: '';
  width: 100%;
  height: 1px;
  background-color: #fff;
  left: 0;
  bottom: 3px;
}
.pc #global_nav_pc .global_nav_list li:hover .gnav_child { z-index: 12; }
.pc #menu_hover_bg.active {
  position: absolute;
  display: block;
  width: 100%;
  height: 120%;
  background: rgb(30, 30, 30, .9);
  z-index:11;
}
@media screen and (max-width: 1279px){
  #global_nav_pc { display: none; }
}

/**
 * nav sp
 */
#global_nav_btn_sp,
#global_nav_sp { display: none; }
@media screen and (max-width: 1279px){
  #global_nav_btn_sp {
    cursor: pointer;
    text-align: center;
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    background: #fff;
    border-radius: 50%;
    z-index: 999;
  }
  #global_nav_sp {
    position: fixed;
    display: none;
    top: 0;
    width: 100%;
    height: 100%;
    /*background-color: rgba(16, 90, 175, 1);*/
    background: #032184;
    z-index: 0;
  }
  #global_nav_sp .logo {
    padding-left: 1.2rem;
    padding-right: 1.2rem;
    height: 6rem;
    background: #fff;
  }
  #global_nav_sp .logo img {
    height: 4rem;
    width: auto;
    vertical-align: middle;
  }
  #global_nav_sp .global_nav { padding: 4rem 0 2rem; }
  #global_nav_sp .global_nav ul { padding: 0rem 1rem; }
  #global_nav_sp .global_nav ul.sub-menu {
    display: none;
    padding: 1rem 0 1rem 2.3rem;
  }
  #global_nav_sp .global_nav li {
    padding: 1rem 0;
    border-bottom: solid 1px #fff;
  }
  #global_nav_sp .global_nav li a {
    display: block;
    color: #fff;
    font-size: 1.8rem;
    font-family: "ZenKakuGothicNew-B";
  }
  #global_nav_sp .global_nav ul.sub-menu li a {
    font-size: 1.6rem;
    font-weight: normal;
  }
  #global_nav_sp .global_nav li a::after {
    position: absolute;
    right: 3.5rem;
    content: "\2b";
    content: "\f138";
    font-family: 'Font Awesome 6 Free';
    font-weight: bold;
  }
  #global_nav_sp .global_nav li:nth-child(n+7) a::after,
  #global_nav_sp .global_nav ul.sub-menu li a::after { content: "\f105"; }
  #global_nav_sp .global_nav li a.active::after { content: "\f068"; }
  #global_nav_sp.navOpen_active {
    visibility: visible;
    display: block;
    overflow-y: auto;
    z-index: 910;
  }
  #global_nav_sp.navOpen_active .logo { background: #032184; }
  #global_nav_sp.navOpen_active .logo a { color: #fff; }
  #global_nav_sp #consultation_sp { background: #fff; }
  #global_nav_sp #consultation_sp ul { padding: 0; }
  #global_nav_sp #consultation_sp li {
    text-align: center;
    padding: 1.3rem 0;
    /*width: 50%;*/
    width: 100%;
  }
  #global_nav_sp #consultation_sp li.sns { background: #06C755; }
  #global_nav_sp #consultation_sp a { display: block; }
  #global_nav_sp #consultation_sp a::after {
    content: "\f105";
    font-family: 'Font Awesome 6 Free';
    font-weight: bold;
    font-size: 1.6rem;
    margin-left: 1.5rem;
  }
  #global_nav_sp #consultation_sp li.mail a,
  #global_nav_sp #consultation_sp a::after { color: #032184; }
  #global_nav_sp #consultation_sp li.sns a,
  #global_nav_sp #consultation_sp li.sns a::after { color: #fff; }
  #global_nav_sp .global_nav_sp_add { margin-top: 5rem; }
  #global_nav_sp .global_nav_sp_add ul li ul li { padding: 1rem; }
  #global_nav_sp .global_nav_sp_add ul li ul li a {
    display: block;
    color: #fff;
  }
  #global_nav_sp .global_nav_sp_add ul li ul li a::after {
    position: absolute;
    right: 3.5rem;
    content: "\f105";
    font-family: 'Font Awesome 6 Free';
    font-weight: bold;
  }
  #global_nav_sp .global_nav_sp_add img { width: 100%; }
}

/**
 * breadcrumbs
 */
#breadcrumbs {
  margin-bottom: 100px;
  padding: 8px 0;
  background: #f8f8f8;
}
#breadcrumbs .aioseo-breadcrumbs {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
#breadcrumbs .aioseo-breadcrumbs span,
#breadcrumbs .aioseo-breadcrumbs a {
  font-size: 13px;
}
#breadcrumbs .aioseo-breadcrumbs span { margin-right: 5px; }
.pc #breadcrumbs a:hover { text-decoration: underline; }
@media screen and (max-width: 820px){
  #breadcrumbs .aioseo-breadcrumbs { -webkit-line-clamp: 2; }
  /*#breadcrumbs .aioseo-breadcrumbs span,
  #breadcrumbs .aioseo-breadcrumbs a { font-size: 1.2rem; }*/
}

/**
 * main title
 */
#main_title { padding: 20px 0 19px; }
@media screen and (max-width: 820px){
}

/**
 * sidebar
 */
#sidebar li {
  list-style: none;
  margin-bottom: 40px;
}
#sidebar li.sidebar_results { margin-bottom: 10px; }
#sidebar li.sidebar_category,
#sidebar li.sidebar_pickup { margin-top: 40px; }
#sidebar li:last-child { margin-bottom: 0; }
#sidebar img { width: 100%; }
#sidebar li.sidebar_lp_webmedia img { box-shadow: 0 0 8px #eee; }
@media screen and (max-width: 820px){
  #sidebar .sidebar_inner {
    margin: 0;
    padding: 0;
    margin-bottom: 5rem;
  }
  #sidebar li { margin-bottom: 3rem; }
  #sidebar li.sidebar_category,
  #sidebar li.sidebar_pickup { margin-top: 3rem; }
}

/**
 * sidebar search form
 */
.searchform .searchform_content { border-radius: 3px; }
.searchform .form {
  position: relative;
  display: flex;
}
.searchform .form input,
.searchform .form input::placeholder { font-size: 14px; }
.searchform .form input::placeholder { color: #bbb; }
.searchform .form input,
.searchform .form button {
   line-height: 40px;
   height: 40px;
   font-size: 16px;
   border-radius: 0;
}
.searchform .form input {
   border-top-left-radius: 3px;
   border-bottom-left-radius: 3px;
   font-size: 14px;
}
.searchform .form button {
   cursor: pointer;
   padding: 0 15px;
   color: #fff;
   background: #15b9f5;
   border: 0;
   border-top-right-radius: 3px;
   border-bottom-right-radius: 3px;
}
.searchform.mb30 { margin-bottom: 30px; }
@media screen and (max-width: 820px){
   .searchform .form button { font-size: 1.6rem; }
}

/**
 * tag list
 */
.tag_list { margin-top: 30px; }
.tag_list .flex { display: flex; }
.tag_list li {
  margin-right: 7px !important;
  margin-bottom: 10px !important;
}
.tag_list a {
   padding: 5px 10px;
   color: #fff;
   font-size: 1.4rem;
   background: #6495ed;
   border-radius: 50px;
}
.pc .tag_list a:hover { background: #0134de; }
@media screen and (max-width: 820px){
   .tag_list li {  margin-bottom: 1.5rem !important }
   .tag_list a { padding: 1rem 1.5rem; }
}

/**
 * cta_banner
 */
.cta_banner_title h2 {
  margin-bottom: 50px;
  line-height: 1.4;
}
.cta_banner_title h2 small {
  color: #0134de;
  font-size: 16px;
  font-family: "ZenKakuGothicNew-B";
}
.cta_banner { text-align: center; }
.cta_banner .flex {
  display: block;
  max-width: 1100px;
  width: auto;
  margin: 0 auto;
}
.cta_banner li { margin-bottom: 20px; }
.cta_banner img { width: 100%; }
.cta_banner a {
  position: relative;
  display: block;
}
.cta_banner a::before {
  content: '';
  background-image: url("assets/images/banner/cta-banner-arrow.png");
  position: absolute;
  content: '';
  display: inline-block;
  background-size: contain;
  background-repeat: no-repeat;
  top: 50%;
  right: 4%;
  transform: translate(-4%, -50%);
  -webkit-transform: translate(-4%, -50%);
  -ms-transform: translate(-4%, -50%);
}
.content_frm1 .cta_banner a::before {
  width: 130px;
  height: 130px;
}
.content_frm2 .cta_banner a::before {
  width: 100px;
  height: 100px;
}
.pc .cta_banner a:hover::before { background-image: url("assets/images/banner/cta-banner-arrow-h.png"); }
@media screen and (max-width: 820px){
  .cta_banner_title h2 { margin-bottom: 3rem; }
  .cta_banner_title h2 small { font-size: 1.2rem; }
  .content_frm1 .cta_banner a::before,
  .content_frm2 .cta_banner a::before {
    width: 0;
    height: 0;
  }
}

/**
 * sidebar
 */
#sidebar .sidebar_inner { /*padding-top: 160px;*/ }

#sidebar .sidebar_inner h2 {
  position: relative;
  padding-left: 30px;
  font-size: 20px;
  font-weight: 500;
  border-bottom: solid 1px #ddd;
}

#sidebar .sidebar_inner h2::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%) !important;
  margin-top: 2px;
  width: 15px;
  height: 100%;
  background-color: #c7c7c7;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 15 15' fill='none'%3E%3Cpath d='M0.727327 13.9818C-0.236973 13.0175 1.94836 9.26873 5.6084 5.60869C9.26845 1.94864 13.0172 -0.236689 13.9815 0.727612C14.9458 1.69191 12.7605 5.44068 9.10044 9.10073C5.4404 12.7608 1.69163 14.9461 0.727327 13.9818Z' stroke='%23000' stroke-miterlimit='10'/%3E%3Cpath d='M13.9817 13.9818C14.946 13.0175 12.7606 9.26873 9.10058 5.60869C5.44054 1.94864 1.69177 -0.236689 0.727466 0.727612C-0.236835 1.69191 1.9485 5.44068 5.60854 9.10073C9.26858 12.7608 13.0174 14.9461 13.9817 13.9818Z' stroke='%23000' stroke-miterlimit='10'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 15 15' fill='none'%3E%3Cpath d='M0.727327 13.9818C-0.236973 13.0175 1.94836 9.26873 5.6084 5.60869C9.26845 1.94864 13.0172 -0.236689 13.9815 0.727612C14.9458 1.69191 12.7605 5.44068 9.10044 9.10073C5.4404 12.7608 1.69163 14.9461 0.727327 13.9818Z' stroke='%23000' stroke-miterlimit='10'/%3E%3Cpath d='M13.9817 13.9818C14.946 13.0175 12.7606 9.26873 9.10058 5.60869C5.44054 1.94864 1.69177 -0.236689 0.727466 0.727612C-0.236835 1.69191 1.9485 5.44068 5.60854 9.10073C9.26858 12.7608 13.0174 14.9461 13.9817 13.9818Z' stroke='%23000' stroke-miterlimit='10'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 1;
  transform: scale(0.92);
  transition: background-color 0.22s ease, transform 0.22s ease;
}
#sidebar .sidebar_inner h2 a {
  color: #4f4f4f;
}
#sidebar .sidebar_inner h2:hover a {
  color: #15b9f5;
}
#sidebar .sidebar_inner h2:hover::before {
  background-color: #15b9f5;
}


#sidebar .tax__sidebar,
#sidebar .tag__sidebar {
  margin: 20px 0;
}
#sidebar .tax__sidebar ul,
#sidebar .tag__sidebar ul {
  padding-left: 20px;
}
#sidebar .tax__sidebar li a {
  color: #555;
}
#sidebar .tax__sidebar li a:hover {
  color: #15b9f5;
}


#sidebar .tag__sidebar {
  margin: 20px 0;
}
#sidebar .tag__sidebar ul {
  display: flex;
  flex-wrap: wrap;
}
#sidebar .tag__sidebar li {
  margin-bottom: 7px;
  margin-right: 10px;
}
#sidebar .tag__sidebar li a {
  padding: 1px 10px 3px;
  font-size: 14px;
  border-radius: 3px;
}
#sidebar .news__sidebar .tag__sidebar li a {
  color: #15b9f5;
  border: solid 1px #15b9f5;
}
#sidebar .case__sidebar .tag__sidebar li a {
  color: #f37135;
  border: solid 1px #f37135;
}
#sidebar .news__sidebar .tag__sidebar li a:hover {
  color: #fff;
  background: #15b9f5;
}
#sidebar .case__sidebar .tag__sidebar li a:hover {
  color: #fff;
  background: #f37135;
}
@media screen and (max-width: 991px){
  #sidebar .sidebar_inner { padding-top: 0; }
}

/**
 * tel banner
 */
.pc .tel_banner { pointer-events: none; }

/**
 * footer
 */

@media screen and (max-width: 820px){
}

/**
 * fixed_bottom_banner
 */
#fixed_bottom_banner {
  position: fixed;
  display: none;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgb(100,100,100,.7);
  z-index: 900;
}
#fixed_bottom_banner .flex {
  list-style: none;
  justify-content: center;
  margin-left: 0;
  margin-bottom: 0;
  padding: 15px;
}
#fixed_bottom_banner li {
  margin-right: 10px;
  font-size: 0;
}
#fixed_bottom_banner li:last-child { margin-right: 0; }
#fixed_bottom_banner img {
  object-fit: cover;
  width: auto;
  height: 75px;
  border-radius: 10px;
}
.pc #fixed_bottom_banner a:hover {
  color: #fff;
  background: #FC5D17;
}
@media screen and (max-width: 820px){
  #fixed_bottom_banner .flex { flex-wrap: nowrap; }
  #fixed_bottom_banner img {
    object-fit: contain;
    width: auto;
    height: auto;
  }
}

/**
 * popup__breakaway__prevention
 */
.popup__breakaway__prevention__and__scroll { font-family: sans-serif !important; }
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-check { display: none !important; }
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-body {
  position: fixed !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(255, 255, 255, .8) !important;
  z-index: 100000 !important;
}
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-window {
  position: relative !important;
  z-index: 100001 !important;
 }
.popup__breakaway__prevention__and__scroll .popup__modal.fade_in .popup__modal-window { animation: popup__breakaway__prevention_fadein 0.3s 1, zoomin 0.3s 1 !important; }
.popup__breakaway__prevention__and__scroll .popup__modal.spin_in .popup__modal-window { animation: popup__breakaway__prevention_spin 0.5s; }
.popup__breakaway__prevention__and__scroll .popup__modal.bottom_to_top .popup__modal-window { animation: popup__breakaway__prevention_bottom_to_top 0.5s; }
.popup__breakaway__prevention__and__scroll .popup__modal.top_to_bottom .popup__modal-window { animation: popup__breakaway__prevention_top_to_bottom 0.5s; }
.popup__breakaway__prevention__and__scroll .popup__modal.left_to_right .popup__modal-window { animation: popup__breakaway__prevention_left_to_right 0.5s; }
.popup__breakaway__prevention__and__scroll .popup__modal.right_to_left .popup__modal-window { animation: popup__breakaway__prevention_right_to_left 0.5s; }
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-label {
  position: absolute !important;
  top: -35px !important;
  right: 0px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  background: #105AAF !important;
  border-radius: 50% !important;
  width: 35px !important;
  height: 35px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}
@media screen and (max-width: 820px){
  .popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-label {
    top: -30px !important;
    width: 30px !important;
    height: 30px !important;
  }
}
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-label:hover { background: #000 !important; }
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-label:active { background: #000 !important; }
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-label svg {
  display: flex !important;
  align-items: center !important;
  fill: #fff !important;
  width: auto !important;
}
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-inner {
  width: 90vw !important;
  max-width: 500px;
  background: #fff !important;
  border-radius: 3px !important;
  box-shadow: 0px 2px 10px rgba(0, 0, 0, .2) !important;
}
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-inner.affair {
  max-width: 800px;
  box-shadow: 0px 0 0 rgba(0, 0, 0, .2) !important;
}
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-inner.affair img { box-shadow: 0px 2px 10px rgba(0, 0, 0, .2) !important; }
@media screen and (max-width: 820px){
  .popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-inner.affair { max-width: 500px; }
}
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-content { position: relative; }
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-content .popup__image { padding: 10px 10px 0; }
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-content .popup__link {
  text-align: center;
  position: absolute;
  bottom: 1.3%;
  left: 50%;
  transform: translate(-50%, -1.3%);
  width: 50%;
}
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-content .popup__link a {
  display: block;
  padding: 15px 10px;
  color: #fff;
  font-weight: 600;
  background: #07c755;
  border: solid 1px #07c755;
  border-radius: 5px;
}
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-content .popup__link a:hover {
  color: #07c755;
  background: #fff;
}
@media screen and (max-width: 820px){
  .popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-content .popup__link { width: 60%; }
  .popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-content .popup__link a {
    padding: .8rem;
    font-size: 14px;
  }
}

.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-check:checked + .popup__modal-body { display: none!important; }
.popup__breakaway__prevention__and__scroll .popup__modal .popup__modal-check:checked + .popup__modal-body .popup__modal-window { animation: popup__breakaway__prevention_zoomout 0.2s 1 forwards !important; }
@keyframes popup__breakaway__prevention_fadein {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes popup__breakaway__prevention_zoomin {
  0% { transform: scale(0.9); }
  100% { transform: scale(1); }
}
@keyframes popup__breakaway__prevention_zoomout {
  0% { transform: scale(1); }
  100% { transform: scale(0.9); }
}
@keyframes popup__breakaway__prevention_spin {
  0% { transform: rotate(0deg) scale(0); }
  100% {transform: rotate(720deg) scale(1);}
}
@keyframes popup__breakaway__prevention_bottom_to_top {
  0% { transform: translate(0, 200%); }
  50% { transform: translate(0, -20%); }
  75% { transform: translate(0, 5%); }
  87% { transform: translate(0, -2.5%); }
  100% { transform: translate(0, 0); }
}
@keyframes popup__breakaway__prevention_top_to_bottom {
  0% { transform: translate(0, -200%); }
  50% { transform: translate(0, 20%); }
  75% { transform: translate(0, -5%); }
  87% { transform: translate(0, 2.5%); }
  100% { transform: translate(0, 0); }
}
@keyframes popup__breakaway__prevention_left_to_right {
  0% { transform: translate(-100%, 0); }
  50% { transform: translate(20%, 0); }
  75% { transform: translate(-5%, 0); }
  87% { transform: translate(2.5%, 0); }
  100% { transform: translate(0, 0); }
}
@keyframes popup__breakaway__prevention_right_to_left {
  0% { transform: translate(100%, 0); }
  50% { transform: translate(-20%, 0); }
  75% { transform: translate(5%, 0); }
  87% { transform: translate(-2.5%, 0); }
  100% { transform: translate(0, 0); }
}

/**
 * reCAPTCHA v3
 */
.grecaptcha-badge { visibility: hidden !important; }


/* ============================================
   ヘッダー（共通パーツ）— Figmaデザイン準拠
   defualt-themes/style.css の末尾に追記
   ※ヒーロー動画の上に重なる透過ヘッダー
   ※セレクタの具体性で優先度を確保（importantは不使用）
   ============================================ */

/* --- #front を基準位置にする --- */
#front {
  position: relative;
}

/* --- ヘッダーをFVの上に固定オーバーレイ（Claude in Chromeで特定した正解）--- */
#header {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1000 !important;
  background: transparent !important;
}

#header .container {
  background: transparent
}

main,
#sidebar {
  margin-top: 0
}
#front main,
#front .main_content {
  margin-bottom: 0
}

#header .container {
  max-width: none;
  width: auto;
  margin: 0;
  padding:
    min(2.1778vw, 31.36px)
    min(3.4722vw, 50px)
    min(2.1778vw, 31.36px)
    min(2.5694vw, 37px); /* 1440px以上でヘッダー余白が拡大しないよう上限を固定 */
  display: flex;
  align-items: center;
}

/* --- ロゴ（マーク＋文字） --- */
#header .logo a {
  display: flex;
  align-items: center;
  gap: min(0.9722vw, 14px); /* 1440px以上でロゴ間隔が拡大しないよう上限を固定 */
  text-decoration: none;
}

/* 既存テーマが出すロゴ画像（management_logo）を隠す */
#header .logo a img {
  display: none;
}

/* マークを擬似要素で表示 */
#header .logo a::before {
  content: "";
  display: inline-block;
  width: 3.1944vw; /* 46px / 1440 */
  height: 3.1944vw;
  background-image: url("assets/images/common/logo-mark.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}

/* サイト名テキスト（.h1）を、ロゴ文字SVGに置き換え
   #header .logo a .h1 と具体的に書くことで、既存の h1 指定に自然に勝つ */
#header .logo a .h1 {
  font-size: 0;
  line-height: 0;
  color: transparent;
  position: relative;
  display: block;
  width: 17.4306vw; /* 251px / 1440 */
  height: 1.9444vw; /* 28px / 1440 */
  margin: 0;
  flex-shrink: 0;
}

#header .logo a .h1::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("assets/images/common/logo-text.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left center;
}

/* --- PCグローバルナビ：右上に黒半透明で配置 --- */
#global_nav_pc {
  position: fixed !important;
  top: 2.0833vw !important; /* 30px / 1440 */
  right: 2.0833vw !important; /* 30px / 1440 */
  width: auto;
  background: transparent;
  z-index: 1001;
}

#global_nav_pc .container {
  max-width: none;
  width: auto;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}

/* ナビ本体：黒半透明の角丸ボックス */
#global_nav_pc .global_nav {
  display: flex;
  align-items: center;
  height: 3.1944vw; /* 46px / 1440 */
  padding: 0;
  background: transparent;
  border-radius: 0;
}

#global_nav_pc .global_nav_list {
  --ga-nav-contact-width: 8.75vw;
  --ga-nav-contact-gap: 3.0556vw;
  --ga-nav-bg-tail: 1.5972vw;
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
  height: 3.1944vw; /* 46px / 1440 */
  margin: 0;
  padding: 0 0 0 0.2083vw; /* 3px / 1440 */
  box-sizing: border-box;
  z-index: 0;
}

#global_nav_pc .global_nav_list::before {
  content: "";
  position: absolute;
  left: -1.1806vw; /* -17px / 1440 */
  top: 0;
  right: calc(var(--ga-nav-contact-width) + var(--ga-nav-contact-gap) - var(--ga-nav-bg-tail));
  z-index: -1;
  width: auto;
  height: 3.1944vw; /* 46px / 1440 */
  border-radius: 0.3472vw; /* 5px / 1440 */
  background: rgba(0, 0, 0, 0.3);
}

#global_nav_pc .global_nav_list li {
  padding: 0;
  margin: 0;
}

#global_nav_pc .global_nav_list li:nth-child(2) {
  margin-left: 2.8472vw; /* 41px / 1440 */
}

#global_nav_pc .global_nav_list li:nth-child(3) {
  margin-left: 2.6389vw; /* 38px / 1440 */
}

#global_nav_pc .global_nav_list li:nth-child(4) {
  margin-left: 2.7778vw; /* 40px / 1440 */
}

#global_nav_pc .global_nav_list li:nth-child(5) {
  margin-left: 3.3333vw; /* 48px / 1440 */
}

#global_nav_pc .global_nav_list li a {
  position: relative;
  cursor: pointer;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 3.1944vw; /* 46px / 1440 */
  box-sizing: border-box;
  padding: 0; /* 0 0 3px / 1440 */
  color: #fff;
  font-size: 1.0417vw; /* 15px / 1440 */
  font-weight: 700;
  border-radius: 0;
  white-space: nowrap;
  background-color: transparent;
  line-height: 1;
}

#global_nav_pc .global_nav_list > li > a {
  transition: color 0.32s cubic-bezier(0.45, 0, 0.25, 1), opacity 0.32s cubic-bezier(0.45, 0, 0.25, 1);
}

#global_nav_pc .global_nav_list > li:not(:last-child) > a::before {
  content: "";
  position: absolute;
  top: 0;
  right: -1.25vw; /* -18px / 1440 */
  bottom: 0;
  left: -1.25vw;
  z-index: -1;
  border-radius: 0.3472vw; /* 5px / 1440 */
  background-color: #15b9f5;
  opacity: 0;
  transition: opacity 0.32s cubic-bezier(0.45, 0, 0.25, 1);
  pointer-events: none;
}

#global_nav_pc .global_nav_list > li:first-child > a::before {
  left: -1.3889vw; /* -20px / 1440 */
}

#global_nav_pc .global_nav_list > li:nth-last-child(2) > a::before {
  right: -1.60vw; /* -23px / 1440 */
  left: -1.60vw; /* -13px / 1440 */
}

#global_nav_pc .global_nav_list li:not(:last-child) a {
  width: auto;
}

#global_nav_pc .global_nav_list li:first-child a {
  border-radius: 0;
}

#global_nav_pc .global_nav_list li:nth-last-child(2) a {
  border-radius: 0;
}

#global_nav_pc .global_nav_list li:last-child {
  margin-left: var(--ga-nav-contact-gap);
}

#global_nav_pc .global_nav_list li:last-child a {
  width: var(--ga-nav-contact-width);
  padding: 0; /* 0 0 3px / 1440 */
  background-color: #15b9f5;
  border-radius: 0.3472vw; /* 5px / 1440 */
}

/* メニュー項目の「v」矢印アイコンを消す */
#global_nav_pc .global_nav_list li a::after {
  content: "";
  font-size: 0;
  margin: 0;
}

/* ホバー時 */
.pc #global_nav_pc .global_nav_list > li:hover > a,
.pc #global_nav_pc .global_nav_list > li:focus-within > a {
  color: #fff;
  background-color: transparent;
}

.pc #global_nav_pc .global_nav_list > li:not(:last-child):hover > a::before,
.pc #global_nav_pc .global_nav_list > li:not(:last-child):focus-within > a::before {
  opacity: 1;
}

.pc #global_nav_pc .global_nav_list > li:last-child:hover > a,
.pc #global_nav_pc .global_nav_list > li:last-child:focus-within > a {
  color: #fff;
  background-color: #15b9f5;
  opacity: 0.92;
}

/* --- ハンバーガーボタン（水色）をナビ右端に追加
       ※.container が2つあるので :not(.relative) で1個目だけに限定 --- */
#global_nav_pc .container:not(.relative)::after {
  content: "";
  display: block;
  width: 3.1944vw; /* 46px / 1440 */
  height: 3.1944vw;
  margin-left: 1.0417vw; /* 15px / 1440 */
  background-color: #15b9f5;
  border-radius: 0.3472vw; /* 5px / 1440 */
  background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  background-size: 1.25vw 0.1389vw, 1.25vw 0.1389vw, 1.25vw 0.1389vw; /* 18px 2px / 1440 */
  background-repeat: no-repeat;
  background-position: 1.0417vw 1.1806vw, 1.0417vw 1.5972vw, 1.0417vw 2.0139vw; /* 15px (17/23/29) / 1440 */
  cursor: pointer;
  transition: background-size 0.25s ease;
}

#global_nav_pc .container:not(.relative):hover::after {
  background-size: 1.25vw 0.1389vw, 0.9722vw 0.1389vw, 0.6944vw 0.1389vw; /* 18/14/10 × 2 / 1440 */
}

#global_nav_pc .container:not(.relative):has(.global_nav:hover)::after {
  background-size: 1.25vw 0.1389vw, 1.25vw 0.1389vw, 1.25vw 0.1389vw;
}

/* --- 既存のSP用ハンバーガーをPC表示では隠す（ハンバーガー2個問題の解消）--- */
#global_nav_btn_sp {
  display: none;
}

/* SNSバナー用の2個目コンテナ（.container.relative）はデザインに無いので隠す */
#global_nav_pc .container.relative {
  display: none;
}

/* --- スマホ（820px以下）--- */
@media screen and (max-width: 820px){
  #header .container {
    padding: 4.2667vw 5.3333vw; /* 16px 20px / 375 */
  }
  #header .logo a::before {
    width: 9.6vw; /* 36px / 375 */
    height: 9.6vw;
  }
  #header .logo a .h1 {
    width: 48vw; /* 180px / 375 */
    height: 5.3333vw; /* 20px / 375 */
  }
  /* PCナビは隠す */
  #global_nav_pc {
    display: none;
  }
  /* スマホでは既存のSP用ハンバーガーを表示 */
  #global_nav_btn_sp {
    display: block;
  }
}


/* ============================================
   Side banner
   SVG image only. No hover panel and no JS state.
   ============================================ */
.ga-sidebanner {
  position: fixed;
  top: 50%;
  right: 0;
  z-index: 11900;
  width: 91px;
  transform: translateY(-50%);
  transition: opacity 240ms ease, visibility 240ms ease, transform 240ms ease;
}

.ga-sidebanner__link,
.ga-sidebanner__picture,
.ga-sidebanner__image {
  display: block;
}

.ga-sidebanner__link {
  text-decoration: none;
}

.ga-sidebanner__picture {
  width: 100%;
}

.ga-sidebanner__image {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 767px) {
  .ga-sidebanner {
    top: auto;
    right: clamp(8px, 2.7vw, 14px);
    bottom: calc(8px + env(safe-area-inset-bottom));
    left: clamp(8px, 2.7vw, 14px);
    width: auto;
    transform: none;
  }

  .ga-sidebanner__link {
    width: 100%;
  }
}

@media screen and (min-width: 768px) and (max-width: 1279px) {
  .ga-sidebanner {
    top: auto;
    right: clamp(20px, 3vw, 32px);
    bottom: calc(20px + env(safe-area-inset-bottom));
    left: auto;
    width: clamp(480px, 65vw, 560px);
    transform: none;
  }

  .ga-sidebanner__link {
    width: 100%;
  }
}

@media screen and (max-width: 1279px) {
  body.ga-sp-fv-visible .ga-sidebanner {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);
  }

  .ga-sidebanner.is-ga-footer-visible {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(12px);
  }
}

/* Fixed UI layer
   Keep persistent navigation and banners above animated/front-page sections. */
#header {
  z-index: 12000 !important;
}

#global_nav_pc {
  z-index: 12010 !important;
}

#global_nav_pc .global_nav_list li:hover .gnav_child {
  z-index: 12011 !important;
}

#menu_hover_bg.active {
  z-index: 12005 !important;
}

#global_nav_btn_sp {
  z-index: 12030 !important;
}

#global_nav_sp.navOpen_active {
  z-index: 12020 !important;
}

#fixed_bottom_banner {
  z-index: 11900;
}

@media screen and (min-width: 821px) {
  html.is-ga-loading-active #header .logo,
  body.is-ga-loading-active #header .logo,
  html.is-ga-loading-active #global_nav_pc,
  body.is-ga-loading-active #global_nav_pc {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-28px);
  }

  body.is-ga-loading-done #header .logo {
    animation: ga-fixed-ui-drop-in 720ms cubic-bezier(0.16, 1, 0.3, 1) 80ms both;
  }

  body.is-ga-loading-done #global_nav_pc {
    animation: ga-fixed-ui-drop-in 720ms cubic-bezier(0.16, 1, 0.3, 1) 230ms both;
  }
}

@media screen and (min-width: 1280px) {
  html.is-ga-loading-active .ga-sidebanner,
  body.is-ga-loading-active .ga-sidebanner {
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(-50% - 28px));
  }

  body.is-ga-loading-done .ga-sidebanner {
    animation: ga-sidebanner-drop-in 720ms cubic-bezier(0.16, 1, 0.3, 1) 380ms both;
  }
}

@keyframes ga-fixed-ui-drop-in {
  from {
    opacity: 0;
    transform: translateY(-28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes ga-sidebanner-drop-in {
  from {
    opacity: 0;
    transform: translateY(calc(-50% - 28px));
  }
  to {
    opacity: 1;
    transform: translateY(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.is-ga-loading-done #header .logo,
  body.is-ga-loading-done #global_nav_pc,
  body.is-ga-loading-done .ga-sidebanner {
    animation: none;
  }
}

/* ============================================
   Footer - Great Attractor
   ============================================ */
#footer.ga-footer {
  position: relative;
  z-index: 3;
  overflow: hidden;
  margin-left: calc(50% - 50vw);
  width: 100vw;
  min-height: 939px;
  color: #fff;
  background-color: #79a9b8;
  background-image:
    linear-gradient(180deg, rgba(36, 93, 112, 0.52) 0%, rgba(51, 101, 111, 0.28) 46%, rgba(13, 46, 60, 0.18) 100%),
    url("assets/images/common/footer-bg-new.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

#footer.ga-footer,
#footer.ga-footer * {
  box-sizing: border-box;
}

#footer.ga-footer p,
#footer.ga-footer ul,
#footer.ga-footer address {
  margin: 0;
  padding: 0;
}

#footer.ga-footer ul {
  list-style: none;
}

#footer.ga-footer a {
  color: inherit;
  text-decoration: none;
}

.pc #footer.ga-footer a:hover {
  opacity: 1;
  color: #15b9f5;
}

#footer.ga-footer .ga-footer__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: min(100%, 1440px);
  min-height: 939px;
  margin: 0 auto;
  padding: 81px 20px 28px;
}

.ga-footer__top {
  display: flex;
  justify-content: space-between;
  gap: 64px;
  padding: 0 56px 0 48px;
}

.ga-footer__catch {
  flex: 0 0 auto;
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans Japanese", sans-serif;
  font-size: 50.5px;
  font-weight: 700;
  line-height: 68px;
  letter-spacing: 0;
}

.ga-footer__nav {
  display: grid;
  grid-template-columns: 164px 248px 184px;
  grid-template-rows: auto auto;
  column-gap: 44px;
  row-gap: 40px;
  align-items: start;
  width: min(100%, 720px);
  padding-top: 18px;
}

.ga-footer__nav-group--about {
  grid-column: 1;
  grid-row: 1;
}

.ga-footer__nav-group--personal {
  grid-column: 2;
  grid-row: 1;
}

.ga-footer__nav-group--corporate {
  grid-column: 2;
  grid-row: 2;
}

.ga-footer__nav-group--links {
  grid-column: 3;
  grid-row: 1 / span 2;
}

.ga-footer__nav-heading {
  position: relative;
  display: block;
  width: fit-content;
  margin-bottom: 0;
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans Japanese", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0;
}

.ga-footer__nav-heading--support {
  margin-top: 25px;
}

a.ga-footer__nav-heading {
  display: inline-block;
  margin-bottom: 0;
}

.ga-footer__nav-list {
  display: grid;
  gap: 22px;
}

.ga-footer__nav-heading + .ga-footer__nav-list {
  padding-top: 30px;
}

.ga-footer__nav-list a {
  position: relative;
  display: inline-block;
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans Japanese", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 16px;
  letter-spacing: 0;
}

.ga-footer__nav-list--primary {
  gap: 24px;
}

.ga-footer__nav-list--primary a {
  font-size: 18px;
  font-weight: 700;
  line-height: 16px;
}

#footer.ga-footer a.ga-footer__nav-heading::after,
#footer.ga-footer .ga-footer__nav-list a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
  pointer-events: none;
}

#footer.ga-footer a.ga-footer__nav-heading:hover::after,
#footer.ga-footer .ga-footer__nav-list a:hover::after,
#footer.ga-footer .ga-footer__nav-list a:focus-visible::after {
  transform: scaleX(1);
}

.pc #footer.ga-footer .ga-footer__nav a:hover {
  color: #fff;
}

@media screen and (min-width: 768px) {
  #footer.ga-footer .ga-footer__nav-heading {
    display: block;
    margin-bottom: 0;
  }

  #footer.ga-footer a.ga-footer__nav-heading {
    display: inline-block;
    margin-bottom: 0;
  }

  #footer.ga-footer .ga-footer__nav-list {
    gap: 15px;
    padding-top: 0;
  }

  #footer.ga-footer .ga-footer__nav-heading + .ga-footer__nav-list {
    padding-top: 30px;
  }
}

.pc #footer.ga-footer .ga-footer__nav-heading {
  display: block;
  margin-bottom: 0;
  line-height: 16px;
}

.pc #footer.ga-footer a.ga-footer__nav-heading {
  display: inline-block;
  margin-bottom: 0;
}

.pc #footer.ga-footer .ga-footer__nav-list {
  display: block;
  gap: 0;
  padding-top: 0;
}

.pc #footer.ga-footer .ga-footer__nav-heading + .ga-footer__nav-list {
  padding-top: 30px;
}

.pc #footer.ga-footer .ga-footer__nav-list > li {
  line-height: 0;
}

.pc #footer.ga-footer .ga-footer__nav-list > li + li {
  margin-top: 15px;
}

.pc #footer.ga-footer .ga-footer__nav-list--primary > li + li {
  margin-top: 0;
}

.pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(2) {
  margin-top: 22px;
}

.pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(3) {
  margin-top: 24px;
}

.pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(4) {
  margin-top: 23px;
}

.pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(5),
.pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(6) {
  margin-top: 25px;
}

.pc #footer.ga-footer .ga-footer__nav-list a {
  line-height: 16px;
}

.ga-footer__company {
  position: relative;
  container-type: inline-size;
  overflow: hidden;
  width: min(100%, 1400px);
  height: 72px;
  min-height: 72px;
  margin-top: 80px;
  margin-right: auto;
  margin-left: auto;
  padding: 0 52px;
  border-radius: 10px;
  background-color: #15b9f5;
  transition: height 520ms cubic-bezier(0.22, 0.61, 0.36, 1), min-height 520ms cubic-bezier(0.22, 0.61, 0.36, 1), padding 520ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.ga-footer__company.is-expanded {
  height: 260px;
  min-height: 260px;
  padding: 43px 52px 28px;
}

.ga-footer__company::before,
.ga-footer__company::after {
  content: "";
  position: absolute;
  pointer-events: none;
  width: clamp(108px, 10.19279cqw, 142.699px);
  height: clamp(410px, 38.68729cqw, 541.622px);
  border: clamp(7px, 0.71429cqw, 10px) solid #2ebef3;
  border-radius: 50%;
  background-color: #15b9f5;
}

.ga-footer__company::before {
  left: clamp(670px, 67.85714cqw, 950px);
  top: clamp(-8px, -0.57143cqw, -5px);
  transform: rotate(-45deg);
}

.ga-footer__company::after {
  right: clamp(110px, 20.71429cqw, 290px);
  top: clamp(-128px, -9.14286cqw, -92px);
  transform: rotate(45deg);
}

.ga-footer__brand,
.ga-footer__company-name,
.ga-footer__address,
.ga-footer__bottom {
  position: relative;
  z-index: 1;
  color: inherit;
  text-decoration: none;
}

.ga-footer__brand,
.ga-footer__company-name,
.ga-footer__address,
.ga-footer__bottom {
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity 320ms ease 120ms, transform 420ms cubic-bezier(0.22, 0.61, 0.36, 1) 80ms;
}

.ga-footer__company.is-expanded .ga-footer__brand,
.ga-footer__company.is-expanded .ga-footer__company-name,
.ga-footer__company.is-expanded .ga-footer__address,
.ga-footer__company.is-expanded .ga-footer__bottom {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.ga-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
}

.ga-footer__brand-mark {
  display: inline-block;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  background-image: url("assets/images/common/logo-mark.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  filter: brightness(0) invert(1);
}

.ga-footer__brand-text {
  display: block;
  width: 196.435px;
  height: 21.913px;
  flex: 0 1 auto;
  overflow: hidden;
  color: transparent;
  font-size: 0;
  line-height: 0;
  letter-spacing: 0;
  background: url("assets/images/common/logo-text.svg") left center / contain no-repeat;
  filter: brightness(0) invert(1);
}

.ga-footer__company-name {
  margin-top: 26px !important;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.ga-footer__address {
  display: block;
  margin-top: 13px !important;
  color: #fff;
  font-size: 15px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.ga-footer__to-top {
  position: absolute;
  z-index: 2;
  --ga-footer-to-top-icon-size: calc(100% * 16 / 84);
  top: 14px;
  right: 14px;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 10px;
  background-color: #fff;
  color: #313131 !important;
  font-size: 12px;
  line-height: 1;
  opacity: 1;
  overflow: hidden;
  transform: none;
  transition:
    top 520ms cubic-bezier(0.22, 0.61, 0.36, 1),
    right 520ms cubic-bezier(0.22, 0.61, 0.36, 1),
    width 520ms cubic-bezier(0.22, 0.61, 0.36, 1),
    height 520ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.ga-footer__to-top span {
  display: none;
}

.ga-footer__to-top::before {
  content: "";
  position: absolute;
  left: calc(50% - (var(--ga-footer-to-top-icon-size) / 2));
  top: calc(50% - (var(--ga-footer-to-top-icon-size) / 2));
  width: var(--ga-footer-to-top-icon-size);
  height: var(--ga-footer-to-top-icon-size);
  aspect-ratio: 1 / 1;
  background-color: #313131;
  clip-path: polygon(50% 0, 0 100%, 100% 100%);
  pointer-events: none;
}

.ga-footer__company.is-expanded .ga-footer__to-top {
  opacity: 1;
}

.pc #footer.ga-footer .ga-footer__to-top:hover,
.pc #footer.ga-footer .ga-footer__to-top:focus-visible {
  top: 0;
  right: 0;
  width: 84px;
  height: 84px;
  transform: none;
}

.ga-footer__bottom {
  position: absolute;
  right: 40px;
  bottom: 28px;
  display: flex;
  align-items: center;
  gap: 38px;
  color: #fff;
}

.ga-footer__bottom a,
.ga-footer__bottom small {
  color: #fff;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.03em;
}

@media screen and (max-width: 767px) {
  #footer.ga-footer {
    min-height: auto;
  }

  #footer.ga-footer .ga-footer__inner {
    min-height: auto;
    padding: 64px 20px 80px;
  }

  .ga-footer__top {
    display: block;
    padding: 0;
  }

  .ga-footer__catch {
    font-size: 38px;
    line-height: 1.28;
  }

  .ga-footer__nav {
    grid-template-columns: 1fr 1fr;
    column-gap: 34px;
    row-gap: 32px;
    width: 100%;
    margin-top: 48px;
  }

  .ga-footer__nav-group--about,
  .ga-footer__nav-group--personal,
  .ga-footer__nav-group--corporate,
  .ga-footer__nav-group--links {
    grid-column: auto;
    grid-row: auto;
  }

  .ga-footer__company {
    height: auto;
    min-height: 230px;
    margin-top: 56px;
    padding: 34px 28px 72px;
  }

  .ga-footer__company.is-expanded {
    height: auto;
    min-height: 230px;
    padding: 34px 28px 72px;
  }

  .ga-footer__brand,
  .ga-footer__company-name,
  .ga-footer__address,
  .ga-footer__bottom {
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .ga-footer__to-top {
    top: 20px;
    right: 20px;
    width: 48px;
    height: 48px;
  }

  .ga-footer__bottom {
    left: 28px;
    right: 28px;
    bottom: 28px;
    justify-content: space-between;
    gap: 20px;
  }
}

@media screen and (max-width: 575px) {
  #footer.ga-footer .ga-footer__inner {
    padding: 48px 16px 16px;
  }

  .ga-footer__catch {
    font-size: 30px;
  }

  .ga-footer__nav {
    grid-template-columns: 1fr;
    gap: 26px;
    margin-top: 40px;
  }

  .ga-footer__nav-heading {
    margin-bottom: 14px;
    font-size: 16px;
  }

  .ga-footer__nav-list,
  .ga-footer__nav-list--primary {
    gap: 10px;
  }

  .ga-footer__nav-list a {
    font-size: 14px;
  }

  .ga-footer__company {
    height: auto;
    min-height: 260px;
    margin-top: 42px;
    padding: 30px 20px 86px;
  }

  .ga-footer__company.is-expanded {
    height: auto;
    min-height: 260px;
    padding: 30px 20px 86px;
  }

  .ga-footer__brand-mark {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }

  .ga-footer__brand-text {
    font-size: 24px;
  }

  .ga-footer__company-name,
  .ga-footer__address {
    font-size: 13px;
    line-height: 1.55;
  }

  .ga-footer__bottom {
    display: grid;
    gap: 8px;
  }
}

/* =========================================================
   Great Attractor SP responsive refinements
   ========================================================= */
@media screen and (max-width: 820px) {
  html,
  body {
    overflow-x: hidden;
  }

  #header .container {
    width: 100%;
    box-sizing: border-box;
    padding: calc(17 / var(--design-sp) * 100vw) calc(72 / var(--design-sp) * 100vw) 0 calc(13 / var(--design-sp) * 100vw);
  }

  #header .logo a {
    min-width: 0;
  }

  #header .logo a .h1 {
    max-width: calc(100vw - calc(131 / var(--design-sp) * 100vw));
  }

  #global_nav_btn_sp {
    top: calc(14 / var(--design-sp) * 100vw);
    right: calc(14 / var(--design-sp) * 100vw);
    width: calc(46 / var(--design-sp) * 100vw);
    height: calc(46 / var(--design-sp) * 100vw);
    border-radius: calc(5 / var(--design-sp) * 100vw);
    background-color: #3fbaf7;
    background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
    background-repeat: no-repeat;
    background-position: center calc(17 / var(--design-sp) * 100vw), center calc(22 / var(--design-sp) * 100vw), center calc(27 / var(--design-sp) * 100vw);
    background-size: calc(16 / var(--design-sp) * 100vw) calc(2 / var(--design-sp) * 100vw);
    box-shadow: none;
    font-size: 0;
  }

  #global_nav_btn_sp > * {
    display: none;
  }

  #global_nav_sp {
    box-sizing: border-box;
    padding-bottom: env(safe-area-inset-bottom);
  }

  #global_nav_sp .global_nav {
    padding-top: 7.2rem;
  }

  #footer.ga-footer {
    background-position: center bottom;
  }
}

/* 821〜1279pxも820px時と同じヘッダー位置を維持 */
@media screen and (min-width: 821px) and (max-width: 1279px) {
  #header .container {
    width: 100%;
    box-sizing: border-box;
    padding: 37.173333px 157.44px 0 28.426667px;
  }

  #header .logo a {
    min-width: 0;
  }
}

@media screen and (max-width: 767px) {
  .ga-footer__nav {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .ga-footer__nav-group--about,
  .ga-footer__nav-group--personal,
  .ga-footer__nav-group--corporate,
  .ga-footer__nav-group--links {
    grid-column: auto;
    grid-row: auto;
  }
}

@media screen and (max-width: 575px) {
  #header .container {
    padding: calc(18 / var(--design-sp) * 100vw) calc(64 / var(--design-sp) * 100vw) calc(14 / var(--design-sp) * 100vw) calc(16 / var(--design-sp) * 100vw);
  }

  #header .logo a {
    gap: calc(10 / var(--design-sp) * 100vw);
  }

  #header .logo a::before {
    width: calc(34 / var(--design-sp) * 100vw);
    height: calc(34 / var(--design-sp) * 100vw);
  }

  #header .logo a .h1 {
    width: calc(158 / var(--design-sp) * 100vw);
    height: calc(18 / var(--design-sp) * 100vw);
    max-width: calc(100vw - calc(126 / var(--design-sp) * 100vw));
  }

  #global_nav_btn_sp {
    top: calc(12 / var(--design-sp) * 100vw);
    right: calc(12 / var(--design-sp) * 100vw);
  }

  #global_nav_sp .logo {
    height: 6.4rem;
  }

  #global_nav_sp .global_nav {
    padding: 2.4rem 0 1.8rem;
  }

  #global_nav_sp .global_nav li {
    padding: 1.15rem 0;
  }

  #global_nav_sp .global_nav li a {
    font-size: 1.6rem;
    line-height: 1.45;
  }

  #footer.ga-footer .ga-footer__inner {
    padding-bottom: calc(18px + env(safe-area-inset-bottom));
  }

  .ga-footer__nav-list a,
  .ga-footer__nav-list--primary a {
    line-height: 1.5;
  }

  .ga-footer__company {
    border-radius: 8px;
  }

  .ga-footer__to-top {
    top: 16px;
    right: 16px;
    width: 42px;
    height: 42px;
  }

  .ga-footer__bottom {
    left: 20px;
    right: 20px;
    bottom: 24px;
  }
}

@media screen and (max-width: 390px) {
  #header .logo a .h1 {
    width: calc(138 / var(--design-sp) * 100vw);
  }

  .ga-footer__brand {
    gap: 8px;
    max-width: calc(100% - 54px);
  }

  .ga-footer__brand-text {
    font-size: 22px;
  }

  .ga-footer__company {
    padding-right: 16px;
    padding-left: 16px;
  }
}

@media screen and (max-width: 575px) {
  #footer.ga-footer {
    min-height: auto;
    background-color: #79a9b8;
    background-image:
      linear-gradient(180deg, rgba(6, 24, 42, 0.28) 0%, rgba(6, 24, 42, 0.34) 48%, rgba(6, 24, 42, 0.28) 100%),
      linear-gradient(90deg, rgba(6, 24, 42, 0.24) 0%, rgba(6, 24, 42, 0.18) 58%, rgba(6, 24, 42, 0.12) 100%),
      url("assets/images/common/footer-bg-new.png");
    background-position: center top;
  }

  #footer.ga-footer .ga-footer__inner {
    width: min(100%, 430px);
    padding: 56px 16px calc(22px + env(safe-area-inset-bottom));
  }

  .ga-footer__top {
    display: block;
  }

  .ga-footer__catch {
    max-width: 280px;
    font-size: clamp(28px, 8.2vw, 34px);
    line-height: 1.28;
    letter-spacing: 0.02em;
    text-shadow: 0 10px 28px rgba(0, 0, 0, 0.38);
  }

  .ga-footer__nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: start;
    column-gap: clamp(34px, 10vw, 56px);
    row-gap: 22px;
    width: 100%;
    margin-top: 32px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  .ga-footer__nav-group {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  .ga-footer__nav-group + .ga-footer__nav-group {
    border-top: 0;
  }

  .ga-footer__nav-group--links {
    grid-column: 2;
    grid-row: 2 / span 2;
    align-self: start;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    width: auto;
  }

  .ga-footer__nav-group--about {
    grid-column: 1 / -1;
  }

  .ga-footer__nav-group--personal {
    grid-column: 1;
    grid-row: 2;
  }

  .ga-footer__nav-group--corporate {
    grid-column: 1;
    grid-row: 3;
    margin-top: 2px;
  }

  .ga-footer__nav-heading {
    display: block;
    margin: 0;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.03em;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
  }

  .ga-footer__nav-group--about .ga-footer__nav-heading {
    position: relative;
    padding-right: 0;
  }

  .ga-footer__nav-group--about .ga-footer__nav-heading::after {
    display: none;
  }

  .ga-footer__nav-group--personal .ga-footer__nav-heading,
  .ga-footer__nav-group--corporate .ga-footer__nav-heading {
    display: block;
    padding-left: 0;
  }

  .ga-footer__nav-group--personal .ga-footer__nav-heading::before,
  .ga-footer__nav-group--corporate .ga-footer__nav-heading::before {
    display: none;
  }

  .ga-footer__nav-heading + .ga-footer__nav-list {
    padding-top: 13px;
  }

  .ga-footer__nav-list {
    display: grid;
    gap: 9px;
  }

  .ga-footer__nav-list a {
    display: inline-flex;
    align-items: center;
    gap: 0;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.03em;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  }

  .ga-footer__nav-list a::before {
    display: none;
  }

  .ga-footer__nav-group--about .ga-footer__nav-list a::before,
  .ga-footer__nav-group--personal .ga-footer__nav-list a::before,
  .ga-footer__nav-group--corporate .ga-footer__nav-list a::before {
    content: "";
    display: inline-block;
    flex: 0 0 14px;
    width: 14px;
    height: 2px;
    margin-right: 7px;
    border-radius: 999px;
    background: #15b9f5;
  }

  .ga-footer__nav-list--primary {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    justify-content: start;
    gap: 13px;
    width: auto;
    padding-top: 0;
  }

  .ga-footer__nav-list--primary::before {
    display: none;
  }

  .ga-footer__nav-list--primary > li {
    min-width: 0;
  }

  .ga-footer__nav-list--primary a {
    display: inline-flex;
    justify-content: flex-start;
    width: auto;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    gap: 0;
    white-space: nowrap;
  }

  .ga-footer__nav-list--primary a::before {
    display: none;
  }

  .ga-footer__nav-list--primary a::after {
    display: none;
  }

  #footer.ga-footer .ga-footer__nav-heading {
    color: #fff;
  }

  #footer.ga-footer .ga-footer__nav-list a {
    color: #fff;
  }

  #footer.ga-footer .ga-footer__nav-list--primary a {
    color: #fff;
  }

  .ga-footer__company {
    height: auto;
    min-height: 214px;
    margin-top: 28px;
    margin-bottom: 0;
    padding: 28px 18px 22px;
    border: 0;
    border-radius: 10px;
    background: #15b9f5;
    box-shadow: none;
    transform: none;
    transition: none;
  }

  .ga-footer__company.is-expanded {
    height: auto;
    min-height: 214px;
    margin-bottom: 0;
    padding: 28px 18px 22px;
    transform: none;
  }

  .ga-footer__company::before,
  .ga-footer__company::after {
    width: 108px;
    height: 410px;
    border-width: 7px;
    border-color: #2ebef3;
    background-color: #15b9f5;
    opacity: 1;
  }

  .ga-footer__company::before {
    left: 92px;
    top: 56px;
    transform: rotate(-45deg);
  }

  .ga-footer__company::after {
    right: 82px;
    top: -82px;
    transform: rotate(45deg);
  }

  .ga-footer__brand {
    gap: 9px;
    max-width: calc(100% - 52px);
  }

  .ga-footer__brand,
  .ga-footer__company-name,
  .ga-footer__address,
  .ga-footer__bottom {
    opacity: 1;
    pointer-events: auto;
    transform: none;
    transition: none;
  }

  .ga-footer__company.is-expanded .ga-footer__brand,
  .ga-footer__company.is-expanded .ga-footer__company-name,
  .ga-footer__company.is-expanded .ga-footer__address,
  .ga-footer__company.is-expanded .ga-footer__bottom {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .ga-footer__brand-mark {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }

  .ga-footer__brand-text {
    font-size: clamp(22px, 6.6vw, 27px);
  }

  .ga-footer__company-name {
    margin-top: 20px !important;
    font-size: 13px;
    line-height: 1.5;
  }

  .ga-footer__address {
    margin-top: 8px !important;
    font-size: 12px;
    line-height: 1.65;
  }

  .ga-footer__to-top {
    top: 13px;
    right: 14px;
    width: 46px;
    height: 46px;
    border-radius: 8px;
    color: #313131 !important;
  }

  .ga-footer__bottom {
    left: 18px;
    right: 18px;
    bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .ga-footer__bottom a,
  .ga-footer__bottom small {
    font-size: 11px;
    line-height: 1.4;
  }
}

/* =========================================================
   Great Attractor lower pages
   ========================================================= */
/*
body:not(.home):not(.front-page) {
  background: #f7fbfd;
}

body:not(.home):not(.front-page) #main_title {
  position: relative;
  overflow: hidden;
  margin-left: calc(50% - 50vw);
  width: 100vw;
  padding: 178px 0 78px !important;
  background:
    linear-gradient(135deg, rgba(16, 29, 53, 0.9) 0%, rgba(11, 72, 96, 0.8) 54%, rgba(21, 185, 245, 0.72) 100%),
    url("assets/images/common/footer-bg.png") center / cover no-repeat;
}

body:not(.home):not(.front-page) #main_title::after {
  content: "";
  position: absolute;
  right: max(24px, calc((100vw - 1100px) / 2));
  bottom: -92px;
  width: 260px;
  height: 260px;
  border: 22px solid rgba(255, 255, 255, 0.16);
  border-radius: 50%;
  pointer-events: none;
}

body:not(.home):not(.front-page) #main_title .container {
  position: relative;
  z-index: 1;
  color: inherit;
  text-decoration: none;
}

body:not(.home):not(.front-page) #main_title h1,
body:not(.home):not(.front-page) #main_title .h1,
body:not(.home):not(.front-page) #main_title .main_title {
  margin: 0;
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans Japanese", sans-serif;
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
}

body:not(.home):not(.front-page) #main_title h1 small,
body:not(.home):not(.front-page) #main_title .h1 small,
body:not(.home):not(.front-page) #main_title .main_title small {
  display: block;
  margin-top: 14px;
  color: #15b9f5;
  font-size: clamp(13px, 1.2vw, 16px);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body:not(.home):not(.front-page) #breadcrumbs {
  border-bottom: 1px solid rgba(16, 29, 53, 0.08);
  background: #fff;
}

body:not(.home):not(.front-page) main,
body:not(.home):not(.front-page) #sidebar {
  margin-top: 90px !important;
  margin-bottom: 110px !important;
}

body:not(.home):not(.front-page) .main_content {
  margin-bottom: 0;
}

body:not(.home):not(.front-page) main a:not([class]) {
  color: #0134de;
  text-decoration: underline;
  text-underline-offset: 0.22em;
}

body:not(.home):not(.front-page) main p,
body:not(.home):not(.front-page) main li {
  color: #313131;
  line-height: 2;
}

body:not(.home):not(.front-page) main h2 {
  position: relative;
  margin: 68px 0 28px;
  padding-left: 22px;
  color: #101d35;
  font-size: clamp(26px, 2.6vw, 38px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
}

body:not(.home):not(.front-page) main h2::before {
  content: "";
  position: absolute;
  top: 0.16em;
  left: 0;
  width: 6px;
  height: 1.1em;
  border-radius: 999px;
  background: #15b9f5;
}

body:not(.home):not(.front-page) main h3 {
  margin: 44px 0 18px;
  color: #101d35;
  font-size: clamp(20px, 1.7vw, 26px);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0;
}

body:not(.home):not(.front-page) main ul:not([class]),
body:not(.home):not(.front-page) main ol:not([class]) {
  margin: 0 0 34px;
  padding-left: 1.4em;
}

body:not(.home):not(.front-page) main ul:not([class]) {
  list-style: disc;
}

body:not(.home):not(.front-page) main ol:not([class]) {
  list-style: decimal;
}

body:not(.home):not(.front-page) main table {
  width: 100%;
  margin: 42px 0;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(16, 29, 53, 0.08);
}

body:not(.home):not(.front-page) main th,
body:not(.home):not(.front-page) main td {
  padding: 18px 22px;
  border-bottom: 1px solid rgba(16, 29, 53, 0.08);
  line-height: 1.8;
  vertical-align: top;
}

body:not(.home):not(.front-page) main th {
  width: 28%;
  color: #101d35;
  font-weight: 700;
  background: #eef8fc;
}

body:not(.home):not(.front-page) main td {
  background: #fff;
}

body:not(.home):not(.front-page) .posts_frm {
  overflow: hidden;
  margin-bottom: 26px;
  padding: 0;
  border: 1px solid rgba(16, 29, 53, 0.08);
  border-radius: 8px;
  box-shadow: 0 18px 45px rgba(16, 29, 53, 0.07);
}

body:not(.home):not(.front-page) .posts_frm > a {
  display: block;
  color: inherit;
}

body:not(.home):not(.front-page) .posts_frm .flex {
  align-items: stretch;
}

body:not(.home):not(.front-page) .posts_frm .posts_image {
  width: 34%;
  min-height: 220px;
  background: #e7f4f9;
}

body:not(.home):not(.front-page) .posts_frm .posts_image img {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}

body:not(.home):not(.front-page) .posts_frm .posts_content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 66%;
  padding: 34px 40px;
}

body:not(.home):not(.front-page) .posts_frm .posts_title h2,
body:not(.home):not(.front-page) .posts_frm .posts_title h3,
body:not(.home):not(.front-page) .posts_frm .posts_title h4,
body:not(.home):not(.front-page) .posts_frm .posts_title h5 {
  margin: 0;
  padding-left: 0;
  color: #101d35;
  font-family: "Noto Sans JP", "Noto Sans Japanese", sans-serif;
  font-size: clamp(20px, 1.6vw, 26px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0;
}

body:not(.home):not(.front-page) .posts_frm .posts_title h2::before,
body:not(.home):not(.front-page) .posts_frm .posts_title h3::before,
body:not(.home):not(.front-page) .posts_frm .posts_title h4::before,
body:not(.home):not(.front-page) .posts_frm .posts_title h5::before {
  content: none;
}

body:not(.home):not(.front-page) .posts_frm .posts_description,
body:not(.home):not(.front-page) .posts_frm .posts_description small {
  color: #5d6678;
  font-size: 15px;
  line-height: 1.9;
}

body:not(.home):not(.front-page) .posts_frm .posts_cat,
body:not(.home):not(.front-page) .posts_frm .posts_cat a {
  background: #15b9f5;
}

body:not(.home):not(.front-page) .posts_frm .posts_date {
  color: #6f7787;
}

body:not(.home):not(.front-page) .posts_frm_vertical {
  gap: 28px;
}

body:not(.home):not(.front-page) .posts_frm_vertical .posts_frm {
  margin-right: 0;
  width: calc((100% - 56px) / 3);
}

body:not(.home):not(.front-page) .posts_frm_vertical .posts_image,
body:not(.home):not(.front-page) .posts_frm_vertical .posts_content {
  width: 100%;
}

body:not(.home):not(.front-page) .posts_frm_vertical .posts_content {
  min-height: 190px;
  padding: 24px;
}

body:not(.home):not(.front-page) .posts_frm_vertical .posts_image,
body:not(.home):not(.front-page) .posts_frm_vertical .posts_image img {
  min-height: 180px;
  height: 180px;
}

@media screen and (max-width: 820px) {
  body:not(.home):not(.front-page) #main_title {
    padding: 116px 0 54px !important;
  }

  body:not(.home):not(.front-page) #main_title::after {
    right: -58px;
    bottom: -118px;
    width: 220px;
    height: 220px;
    border-width: 18px;
  }

  body:not(.home):not(.front-page) main,
  body:not(.home):not(.front-page) #sidebar {
    margin-top: 5.6rem !important;
    margin-bottom: 7rem !important;
  }

  body:not(.home):not(.front-page) main h2 {
    margin-top: 4.8rem;
    margin-bottom: 2rem;
  }

  body:not(.home):not(.front-page) main h3 {
    margin-top: 3.4rem;
  }

  body:not(.home):not(.front-page) main th,
  body:not(.home):not(.front-page) main td {
    display: block;
    width: 100%;
    padding: 1.6rem 1.8rem;
  }

  body:not(.home):not(.front-page) main th {
    border-bottom: 0;
  }

  body:not(.home):not(.front-page) .posts_frm {
    margin-bottom: 1.8rem;
    border-radius: 6px;
  }

  body:not(.home):not(.front-page) .posts_frm .flex {
    display: block;
  }

  body:not(.home):not(.front-page) .posts_frm .posts_image,
  body:not(.home):not(.front-page) .posts_frm .posts_content,
  body:not(.home):not(.front-page) .posts_frm_vertical .posts_frm {
    width: 100%;
  }

  body:not(.home):not(.front-page) .posts_frm .posts_image,
  body:not(.home):not(.front-page) .posts_frm .posts_image img {
    min-height: 190px;
    height: 190px;
  }

  body:not(.home):not(.front-page) .posts_frm .posts_content,
  body:not(.home):not(.front-page) .posts_frm_vertical .posts_content {
    min-height: 0;
    padding: 2.2rem;
  }

  body:not(.home):not(.front-page) .posts_frm_vertical {
    gap: 0;
  }
}
*/

/* ============================================
   SP global menu polish
   ============================================ */
@media screen and (max-width: 820px) {
  #global_nav_sp {
    box-sizing: border-box;
    background:
      radial-gradient(circle at 88% 8%, rgba(63, 186, 247, 0.18) 0, rgba(63, 186, 247, 0) 34%),
      linear-gradient(180deg, #061b33 0%, #071d3b 100%);
    color: #fff;
  }

  #global_nav_sp.navOpen_active {
    display: block;
    min-height: 100dvh;
    padding: 0 0 calc(28px + env(safe-area-inset-bottom));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  #global_nav_sp.navOpen_active .logo {
    display: flex;
    align-items: center;
    height: auto;
    min-height: 76px;
    padding: 18px 76px 14px 24px;
    background: transparent;
  }

  #global_nav_sp.navOpen_active .logo a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: transparent;
    font-size: 0;
    font-weight: 800;
    line-height: 0;
    letter-spacing: 0.04em;
  }

  #global_nav_sp.navOpen_active .logo img {
    display: none;
  }

  #global_nav_sp.navOpen_active .logo a::before,
  #global_nav_sp.navOpen_active .logo a::after {
    content: "";
    display: block;
    flex-shrink: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }

  #global_nav_sp.navOpen_active .logo a::before {
    width: 32px;
    height: 32px;
    background-image: url("assets/images/common/logo-mark.svg");
  }

  #global_nav_sp.navOpen_active .logo a::after {
    width: 178px;
    height: 20px;
    background-image: url("assets/images/common/logo-text.svg");
  }

  #global_nav_sp #consultation_sp {
    display: none !important;
  }

  #global_nav_sp .global_nav {
    width: auto;
    padding: 14px 24px 28px;
  }

  #global_nav_sp .global_nav ul {
    padding: 0;
  }

  #global_nav_sp .global_nav li {
    position: relative;
    padding: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.34);
  }

  #global_nav_sp .global_nav li:first-child {
    border-top: 1px solid rgba(255, 255, 255, 0.34);
  }

  #global_nav_sp .global_nav li a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 64px;
    padding: 0 58px 0 0;
    color: #fff;
    font-size: 21px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: 0.02em;
  }

  #global_nav_sp .global_nav li a::after {
    content: "→";
    top: 50%;
    right: 4px;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 5px;
    background: #fff;
    color: #061b33;
    font-family: inherit;
    font-size: 16px;
    font-weight: 800;
    line-height: 1;
    transform: translateY(-50%);
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
  }

  #global_nav_sp .global_nav li a:active::after,
  #global_nav_sp .global_nav li a:focus-visible::after {
    background: #15b9f5;
    color: #fff;
    transform: translateY(-50%) scale(0.96);
  }

  #global_nav_sp .global_nav ul.sub-menu {
    padding: 0 0 14px 14px;
  }

  #global_nav_sp .global_nav ul.sub-menu li {
    border-bottom-color: rgba(255, 255, 255, 0.18);
  }

  #global_nav_sp .global_nav ul.sub-menu li:first-child {
    border-top: 0;
  }

  #global_nav_sp .global_nav ul.sub-menu li a {
    min-height: 44px;
    padding-right: 42px;
    font-size: 15px;
    font-weight: 700;
    opacity: 0.86;
  }

  #global_nav_sp .global_nav_sp_add {
    margin: 28px 24px 0;
  }
}

@media screen and (max-width: 575px) {
  #global_nav_sp.navOpen_active .logo {
    min-height: 72px;
    padding-left: 20px;
  }

  #global_nav_sp.navOpen_active .logo a::before {
    width: 30px;
    height: 30px;
  }

  #global_nav_sp.navOpen_active .logo a::after {
    width: 160px;
    height: 18px;
  }

  #global_nav_sp #consultation_sp {
    display: none !important;
  }

  #global_nav_sp .global_nav {
    padding-right: 28px;
    padding-left: 28px;
  }

  #global_nav_sp .global_nav li a {
    min-height: 60px;
    font-size: 20px;
  }
}


.ga-promo-banners,
.ga-contact {
  position: relative;
  z-index: 3;
}

/* ===== Promo Banners ===== */
.ga-promo-banners {
  margin-left: calc(50% - 50vw);
  width: 100vw;
  box-sizing: border-box;
  padding: 0 0 80px;
  background: #fff;
}

.ga-promo-banners__inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.875vw, 27px);
  width: min(calc(100% - clamp(32px, 4.16667vw, 60px)), 1380px);
  margin: 0 auto;
}

.ga-promo-banners__card {
  position: relative;
  container-type: inline-size;
  display: block;
  aspect-ratio: 443 / 178;
  overflow: hidden;
  box-sizing: border-box;
  border-radius: 10px;
  color: #000;
  text-decoration: none;
}

.ga-promo-banners__card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  background: rgba(0, 0, 0, 0.16);
  opacity: 0;
  transition: opacity 0.24s ease;
  pointer-events: none;
}

.ga-promo-banners__card:hover::after,
.ga-promo-banners__card:focus-visible::after {
  opacity: 1;
}

.ga-promo-banners__card--electric {
  background-image:
    linear-gradient(90deg, rgba(0,121,205,0.86) 0%, rgba(0,121,205,0.44) 50%, rgba(0,121,205,0.05) 100%),
    url("assets/images/front/promo-solar.png");
  background-position: center;
  background-size: cover;
}

.ga-promo-banners__electric-copy {
  position: absolute;
  inset: 0;
  z-index: 1;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  text-align: center;
  text-shadow: 0 0 8px rgba(0,0,0,0.3);
}

.ga-promo-banners__electric-title {
  display: block;
  position: absolute;
  inset: 0;
  font-size: 0;
  line-height: 0;
}

.ga-promo-banners__electric-main,
.ga-promo-banners__electric-yen {
  position: absolute;
  top: clamp(30px, 8.33333cqw, 47px);
  font-size: clamp(30px, 8.92857cqw, 54px);
  line-height: clamp(30px, 8.92857cqw, 54px);
  letter-spacing: 0;
  white-space: nowrap;
}

.ga-promo-banners__electric-main {
  left: clamp(14px, 3.80952cqw, 24px);
}

.ga-promo-banners__electric-zero {
  position: absolute;
  left: clamp(212px, 57.85714cqw, 354px);
  top: clamp(5px, 1.42857cqw, 9px);
  font-size: clamp(58px, 17.38095cqw, 106px);
  line-height: clamp(58px, 17.38095cqw, 106px);
  letter-spacing: 0;
  white-space: nowrap;
}

.ga-promo-banners__electric-yen {
  left: clamp(254px, 68.57143cqw, 420px);
}

.ga-promo-banners__electric-lead {
  display: block;
  position: absolute;
  left: clamp(16px, 4.28571cqw, 26px);
  top: clamp(74px, 19.52381cqw, 118px);
  width: clamp(190px, 51.66667cqw, 316px);
  font-size: clamp(13px, 3.80952cqw, 22px);
  font-weight: 700;
  line-height: clamp(19px, 5.45635cqw, 32px);
  letter-spacing: 0;
  text-align: left;
  white-space: nowrap;
}

.ga-promo-banners__electric-lead-tight {
  letter-spacing: clamp(-6px, -1.14286cqw, -4px);
}

.ga-promo-banners__electric-sub {
  display: block;
  position: absolute;
  left: clamp(14px, 3.80952cqw, 24px);
  top: clamp(96px, 25.2381cqw, 154px);
  font-family: "A-OTF Gothic MB101 Pr5", "Noto Sans JP", sans-serif;
  font-size: clamp(19px, 5.61571cqw, 34px);
  font-weight: 700;
  line-height: clamp(25px, 7.42595cqw, 45px);
  letter-spacing: 0;
  white-space: nowrap;
}

.ga-promo-banners__more {
  --ga-promo-more-font-size: clamp(13px, 3.09524cqw, 19px);
  position: absolute;
  right: 0;
  bottom: -1px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: clamp(23px, 5.47619cqw, 34px);
  padding: 0 clamp(7px, 1.66667cqw, 10px) 0 clamp(14px, 3.33333cqw, 20px);
  box-sizing: border-box;
  border-radius: 4px 0 10px 0;
  background: #f37135;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0;
  font-weight: 700;
  line-height: 0;
  white-space: nowrap;
}

.ga-promo-banners__more::before {
  /* テキスト描画は HTML側で行う（クライアント指示: テキストを疑似要素で描画しない）。
     このルールは互換のため空のまま保持。 */
  content: none;
}

.ga-promo-banners__more::after {
  content: "";
  display: block;
  width: clamp(14px, 3.33333cqw, 20px);
  height: clamp(12px, 2.85714cqw, 17px);
  flex: 0 0 auto;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='17' viewBox='0 0 20 17' fill='none'%3E%3Cpath d='M2 8.5H16.5' stroke='white' stroke-width='1' stroke-linecap='round'/%3E%3Cpath d='M11 2.5L17 8.5L11 14.5' stroke='white' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ga-promo-banners__card--paint {
  --ga-promo-paint-photo-w: 209px;
  background: #ccf0ec;
}

.ga-promo-banners__card--paint::before {
  content: "";
  position: absolute;
  top: 5px;
  right: 5px;
  z-index: 0;
  width: var(--ga-promo-paint-photo-w);
  height: 168px;
  box-sizing: border-box;
  border-radius: 10px;
  background: #fff url("assets/images/front/promo-paint.png") center right / cover no-repeat;
}

.ga-promo-banners__paint-badge {
  position: absolute;
  left: 10px;
  top: 7px;
  z-index: 1;
  display: inline-grid;
  height: 30px;
  width: 207px;
  place-items: center;
  border-radius: 50px;
  background: #00ddc3;
  color: #313131;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
}

.ga-promo-banners__paint-copy {
  position: absolute;
  inset: 0;
  z-index: 1;
  color: #313131;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
}

.ga-promo-banners__paint-kicker {
  position: absolute;
  left: clamp(41px, 10.71429cqw, 65px);
  top: auto;
  bottom: 100px;
  display: inline-block;
  font-size: 26px;
  line-height: clamp(30px, 8.04238cqw, 49px);
  white-space: nowrap;
}

.ga-promo-banners__paint-kicker::before,
.ga-promo-banners__paint-kicker::after {
  content: "";
  position: absolute;
  top: clamp(14px, 3.80952cqw, 23px);
  width: clamp(28px, 7.66714cqw, 46px);
  height: clamp(2px, 0.47619cqw, 3px);
  background: #313131;
  transform-origin: center center;
}

.ga-promo-banners__paint-kicker::before {
  right: calc(100% - 1px);
  transform: rotate(64.23deg);
}

.ga-promo-banners__paint-kicker::after {
  left: calc(100% - 1px);
  transform: rotate(-64.23deg);
}

.ga-promo-banners__paint-main {
  display: block;
  position: absolute;
  left: clamp(20px, 5.47619cqw, 33px);
  top: auto;
  bottom: 54px;
  color: #119417;
  font-size: clamp(45px, 12.01476cqw, 73px);
  line-height: clamp(36px, 9.73095cqw, 59px);
  white-space: nowrap;
}

.ga-promo-banners__paint-sub {
  display: block;
  position: absolute;
  left: clamp(113px, 30.2381cqw, 184px);
  top: auto;
  bottom: 48px;
  margin-left: 0;
  color: #119417;
  font-size: 23px;
  line-height: clamp(22px, 5.69452cqw, 35px);
  white-space: nowrap;
}

.ga-promo-banners__paint-note {
  position: absolute;
  left: clamp(18px, 4.52381cqw, 28px);
  right: auto;
  bottom: 10px;
  top: auto;
  z-index: 1;
  display: block;
  min-height: 0;
  padding: 0;
  box-sizing: border-box;
  background: transparent;
  color: #313131;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
  width: 14em;
}

.ga-promo-banners__card--electric .ga-promo-banners__more,
.ga-promo-banners__card--paint .ga-promo-banners__more {
  --ga-promo-more-font-size: 13px;
  right: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  width: 128px;
  height: 23px;
  padding: 0 0 0 5px;
  border-radius: 4px 0 10px 0;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: var(--ga-promo-more-font-size);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

.ga-promo-banners__card--electric .ga-promo-banners__more::before,
.ga-promo-banners__card--paint .ga-promo-banners__more::before {
  /* テキスト描画は HTML側で行うため content は付与しない */
  content: none;
}

.ga-promo-banners__card--electric .ga-promo-banners__more::after,
.ga-promo-banners__card--paint .ga-promo-banners__more::after {
  width: 8px;
  height: 9px;
  margin-left: -3px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='9' viewBox='0 0 8 9' fill='none'%3E%3Cpath d='M0 4.5H7.4' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3.5 0.6L7.4 4.5L3.5 8.4' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ga-promo-banners__card--soon {
  display: grid;
  place-items: center;
  background: #d9d9d9;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(12px, 3.80952cqw, 16px);
  font-weight: 500;
  line-height: 1;
}

.ga-promo-banners__card--soon {
  display: none !important;
}

.ga-promo-banners__inner {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(calc(100% - clamp(32px, 4.16667vw, 60px)), calc(882px + clamp(16px, 1.875vw, 27px)));
  justify-content: center;
}

@media screen and (max-width: 1279px) {
  .ga-promo-banners {
    padding-bottom: 56px;
  }

  .ga-promo-banners__inner {
    grid-template-columns: 1fr;
    width: min(calc(100% - 20px), 355px);
    gap: 22px;
  }

  .ga-promo-banners__card {
    width: 100%;
    height: auto;
    aspect-ratio: 355 / 143.288;
  }

  .ga-promo-banners__paint-kicker {
    top: clamp(39px, 10.30714cqw, 63px);
    bottom: auto;
  }

  .ga-promo-banners__paint-sub {
    top: clamp(74px, 19.52381cqw, 118px);
    bottom: auto;
  }

  .ga-promo-banners__paint-main {
    top: clamp(75px, 19.7619cqw, 120px);
    bottom: auto;
  }

  .ga-promo-banners__paint-note {
    top: clamp(122px, 32.38095cqw, 197px);
    bottom: auto;
    font-size: clamp(12px, 3.33333cqw, 20px);
    line-height: clamp(14px, 3.78976cqw, 23px);
  }
}

@media screen and (max-width: 575px) {
  .ga-promo-banners {
    padding-bottom: 51px;
  }

  .ga-promo-banners__inner {
    width: min(calc(100% - 20px), 355px);
    gap: 22px;
  }

  .ga-promo-banners__electric-copy {
    inset: 0;
  }

  .ga-promo-banners__electric-main,
  .ga-promo-banners__electric-yen {
    top: clamp(32px, 9.04762cqw, 38px);
    font-size: clamp(26px, 7.14286cqw, 30px);
    line-height: clamp(26px, 7.14286cqw, 30px);
  }

  .ga-promo-banners__electric-main {
    left: clamp(14px, 3.80952cqw, 16px);
  }

  .ga-promo-banners__electric-zero {
    left: clamp(180px, 50.47619cqw, 212px);
    top: clamp(14px, 4.04762cqw, 17px);
    font-size: clamp(49px, 13.80952cqw, 58px);
    line-height: clamp(49px, 13.80952cqw, 58px);
  }

  .ga-promo-banners__electric-yen {
    left: clamp(216px, 60.47619cqw, 254px);
  }

  .ga-promo-banners__electric-lead {
    left: clamp(15px, 4.28571cqw, 18px);
    top: clamp(70px, 19.52381cqw, 82px);
    font-size: clamp(11px, 3.09524cqw, 13px);
  }

  .ga-promo-banners__electric-sub {
    left: clamp(14px, 3.80952cqw, 16px);
    top: clamp(90px, 25.2381cqw, 106px);
    font-size: clamp(16px, 4.52381cqw, 19px);
  }

  .ga-promo-banners__paint-badge {
    left: clamp(8px, 2.38095cqw, 10px);
    width: clamp(156px, 43.80952cqw, 184px);
    font-size: clamp(13px, 3.80952cqw, 16px);
  }

  .ga-promo-banners__card--paint::before {
    width: clamp(184px, 44.46809cqw, 209px);
  }

  .ga-promo-banners__paint-copy {
    inset: 0;
  }

  .ga-promo-banners__paint-kicker {
    left: clamp(35px, 9.7619cqw, 41px);
    font-size: clamp(19px, 5.47619cqw, 23px);
  }

  .ga-promo-banners__paint-main {
    left: clamp(17px, 4.7619cqw, 20px);
    font-size: clamp(38px, 10.71429cqw, 45px);
  }

  .ga-promo-banners__paint-sub {
    left: clamp(96px, 26.90476cqw, 113px);
    font-size: clamp(16px, 4.52381cqw, 19px);
    line-height: clamp(19px, 5.2381cqw, 22px);
  }

  .ga-promo-banners__paint-note {
    left: clamp(15px, 4.28571cqw, 18px);
    top: clamp(116px, 32.38095cqw, 136px);
    bottom: auto;
    padding: 0;
    font-size: clamp(10px, 2.85714cqw, 12px);
    width: 14em;
  }
}

/* ===== Promo Banners common ratio patch ===== */
@media screen and (min-width: 1280px) {
  .ga-promo-banners {
    width: min(100vw, 1920px);
    max-width: 1920px;
    margin-right: 0;
    margin-left: calc(50% - min(50vw, 960px));
    container-type: inline-size;
    padding-bottom: min(calc(80 / var(--design-pc) * 100vw), 106.667px);
  }

  .ga-promo-banners__inner {
    grid-template-columns: repeat(2, minmax(0, calc(443 / var(--design-pc) * 100cqw)));
    gap: calc(27 / var(--design-pc) * 100cqw);
    width: calc(913 / var(--design-pc) * 100cqw);
    max-width: calc(100% - calc(60 / var(--design-pc) * 100cqw));
  }

  .ga-promo-banners__card {
    min-height: 0;
    border-radius: calc(10 / var(--design-pc) * 100cqw);
  }

  .ga-promo-banners__paint-badge {
    left: calc(10 / 443 * 100cqw);
    top: calc(7 / 443 * 100cqw);
    width: calc(207 / 443 * 100cqw);
    height: calc(30 / 443 * 100cqw);
    border-radius: calc(50 / 443 * 100cqw);
    font-size: calc(18 / 443 * 100cqw);
  }

  .ga-promo-banners__paint-kicker {
    left: 10.71429cqw;
    bottom: calc(100 / 443 * 100cqw);
    font-size: calc(26 / 443 * 100cqw);
    line-height: 8.04238cqw;
  }

  .ga-promo-banners__paint-kicker::before,
  .ga-promo-banners__paint-kicker::after {
    top: 3.80952cqw;
    width: 7.66714cqw;
    height: 0.47619cqw;
  }

  .ga-promo-banners__paint-main {
    left: 5.47619cqw;
    bottom: calc(54 / 443 * 100cqw);
    font-size: 12.01476cqw;
    line-height: 9.73095cqw;
  }

  .ga-promo-banners__paint-sub {
    left: 30.2381cqw;
    bottom: calc(48 / 443 * 100cqw);
    font-size: calc(23 / 443 * 100cqw);
    line-height: 5.69452cqw;
  }

  .ga-promo-banners__paint-note {
    left: calc(229 / 443 * 50cqw - 7em);
    bottom: calc(10 / 443 * 100cqw);
    font-size: max(14px, calc(14 / 443 * 100cqw));
    line-height: max(16px, calc(16 / 443 * 100cqw));
  }

  .ga-promo-banners__card--electric .ga-promo-banners__more,
  .ga-promo-banners__card--paint .ga-promo-banners__more {
    --ga-promo-more-font-size: max(14px, calc(14 / 443 * 100cqw));
    gap: max(4px, calc(4 / 443 * 100cqw));
    width: max(128px, calc(128 / 443 * 100cqw));
    height: max(23px, calc(23 / 443 * 100cqw));
    padding-left: max(5px, calc(5 / 443 * 100cqw));
    border-radius: max(4px, calc(4 / 443 * 100cqw)) 0 calc(10 / 443 * 100cqw) 0;
  }

  .ga-promo-banners__card--electric .ga-promo-banners__more::after,
  .ga-promo-banners__card--paint .ga-promo-banners__more::after {
    width: max(8px, calc(8 / 443 * 100cqw));
    height: max(9px, calc(9 / 443 * 100cqw));
    margin-left: min(-3px, calc(-3 / 443 * 100cqw));
  }
}

.ga-promo-banners__card--paint::before {
  top: calc(5 / 443 * 100cqw);
  right: calc(5 / 443 * 100cqw);
  width: calc(209 / 443 * 100cqw);
  height: calc(168 / 443 * 100cqw);
  border-radius: calc(10 / 443 * 100cqw);
}

.ga-promo-banners__more::before {
  content: none !important;
}

@media screen and (max-width: 1279px) {
  .ga-promo-banners {
    padding-bottom: calc(56 / var(--design-sp) * 100vw);
  }

  .ga-promo-banners__inner {
    grid-template-columns: 1fr;
    width: min(calc(100% - calc(20 / var(--design-sp) * 100vw)), calc(355 / var(--design-sp) * 100vw));
    max-width: none;
    gap: calc(22 / var(--design-sp) * 100vw);
    padding-right: 0;
    padding-left: 0;
  }

  .ga-promo-banners__card {
    min-height: 0;
  }
}

@media screen and (max-width: 575px) {
  .ga-promo-banners {
    padding-bottom: calc(51 / var(--design-sp) * 100vw);
  }

  .ga-promo-banners__inner {
    width: calc(355 / var(--design-sp) * 100vw);
    max-width: calc(100% - calc(20 / var(--design-sp) * 100vw));
    gap: calc(22 / var(--design-sp) * 100vw);
  }

  .ga-promo-banners__more {
    display: inline-flex;
    align-items: center;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: var(--ga-promo-more-font-size, 13px);
    font-weight: 700;
    line-height: 13px;
    letter-spacing: 0;
    white-space: nowrap;
    overflow: hidden;
  }

  .ga-promo-banners__more::after {
    display: block;
    flex: 0 0 auto;
  }

  .ga-promo-banners__card--paint::before {
    top: calc(4 / var(--design-sp) * 100vw);
    right: calc(4 / var(--design-sp) * 100vw);
    width: calc(168.243 / var(--design-sp) * 100vw);
    height: calc(135.238 / var(--design-sp) * 100vw);
    border: 0;
    border-radius: calc(8.05 / var(--design-sp) * 100vw);
    background-color: #fff;
    background-size: cover;
  }

  .ga-promo-banners__paint-main {
    bottom: calc(63 / var(--design-sp) * 100vw);
    transform: translate(calc(5 / var(--design-sp) * 100vw), calc(-5 / var(--design-sp) * 100vw));
  }

  .ga-promo-banners__paint-sub {
    bottom: calc(57 / var(--design-sp) * 100vw);
    transform: translate(calc(5 / var(--design-sp) * 100vw), calc(-5 / var(--design-sp) * 100vw));
  }

  .ga-promo-banners__paint-note {
    --ga-promo-paint-note-area: calc(100cqw - calc(4 / var(--design-sp) * 100vw) - calc(168.243 / var(--design-sp) * 100vw));
    top: auto;
    bottom: calc(8 / 355 * 100cqw);
    left: calc(var(--ga-promo-paint-note-area) / 2);
    width: min(13em, var(--ga-promo-paint-note-area));
    text-align: left;
    font-size: max(10px, calc(14 / 443 * 100cqw));
    line-height: max(12px, calc(16 / 443 * 100cqw));
    letter-spacing: 0;
    transform: translateX(-50%);
  }

  .ga-promo-banners__paint-badge,
  .ga-promo-banners__paint-kicker {
    transform: translateX(calc(5 / var(--design-sp) * 100vw));
  }
}

/* ===== Contact ===== */
.ga-contact {
  margin-left: calc(50% - 50vw);
  width: 100vw;
  box-sizing: border-box;
  background-color: #fff;
  cursor: pointer;
  transition: background-color 300ms ease-out;
  border-top: 0;
}

.ga-contact.is-ga-contact-linked {
  border-top: 0;
}

.ga-contact__inner {
  position: relative;
  width: min(100%, 1440px);
  height: 338px;
  margin: 0 auto;
}

.ga-contact__link {
  position: absolute;
  inset: 0;
  display: block;
  color: inherit;
  text-decoration: none;
}

.ga-contact__link:focus-visible {
  outline: none;
}

.ga-contact__label {
  position: absolute;
  left: 80px;
  top: 101px;
  display: inline-flex;
  align-items: center;
  gap: 3.25px;
  margin: 0;
  color: #313131;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 14px;
  letter-spacing: 0.7px;
  white-space: nowrap;
  transition: color 300ms ease-out;
}

.ga-contact__mark {
  display: inline-block;
  width: 16.75px;
  height: 16.75px;
  flex: 0 0 16.75px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 15 15' fill='none'%3E%3Cpath d='M0.727327 13.9818C-0.236973 13.0175 1.94836 9.26873 5.6084 5.60869C9.26845 1.94864 13.0172 -0.236689 13.9815 0.727612C14.9458 1.69191 12.7605 5.44068 9.10044 9.10073C5.4404 12.7608 1.69163 14.9461 0.727327 13.9818Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3Cpath d='M13.9817 13.9818C14.946 13.0175 12.7606 9.26873 9.10058 5.60869C5.44054 1.94864 1.69177 -0.236689 0.727466 0.727612C-0.236835 1.69191 1.9485 5.44068 5.60854 9.10073C9.26858 12.7608 13.0174 14.9461 13.9817 13.9818Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.ga-contact__title {
  position: absolute;
  left: 78px;
  top: 157px;
  margin: 0;
  color: #313131;
  font-family: "Google Sans Flex", "Outfit", sans-serif;
  font-size: 70px;
  font-weight: 400;
  line-height: 66px;
  letter-spacing: 0;
  transition: color 300ms ease-out;
}

.ga-contact__arrow {
  position: absolute;
  top: 149px;
  right: 78px;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  overflow: hidden;
  box-sizing: border-box;
  border-radius: 5px;
  background: #fff;
  color: #313131;
  text-decoration: none;
  transition: color 300ms ease-out;
}

.ga-contact__arrow::before {
  content: "";
  position: absolute;
  inset: -1px 100% -1px auto;
  z-index: 0;
  width: calc(100% + 2px);
  border-radius: 5px;
  background: #15b9f5;
  transition: right 300ms ease-out;
}

.ga-contact__arrow-icon {
  position: relative;
  z-index: 1;
  display: block;
  width: 40px;
  height: 40px;
}

.ga-contact__arrow-line {
  stroke: currentColor;
  transition: stroke 300ms ease-out;
}

.ga-contact__arrow-rect {
  transition: stroke 300ms ease-out;
}

.ga-contact__arrow:hover,
.ga-contact__arrow:focus-visible {
  color: #fff;
}

.ga-contact:hover,
.ga-contact:focus-within {
  background-color: #0b1930;
}

.ga-contact:hover .ga-contact__label,
.ga-contact:focus-within .ga-contact__label,
.ga-contact:hover .ga-contact__title,
.ga-contact:focus-within .ga-contact__title {
  color: #fff;
}

.ga-contact__arrow:hover::before,
.ga-contact__arrow:focus-visible::before,
.ga-contact:hover .ga-contact__arrow::before,
.ga-contact:focus-within .ga-contact__arrow::before {
  right: -1px;
}

.ga-contact__arrow:hover .ga-contact__arrow-rect,
.ga-contact__arrow:focus-visible .ga-contact__arrow-rect,
.ga-contact:hover .ga-contact__arrow-rect,
.ga-contact:focus-within .ga-contact__arrow-rect {
  stroke: #15b9f5;
}

.ga-contact:hover .ga-contact__arrow,
.ga-contact:focus-within .ga-contact__arrow {
  color: #fff;
}

/* GA arrow authority moved to front.css. Disabled to prevent duplicate/missing arrows.
.ga-services__arrow,
.ga-whatis__more-icon,
.ga-whatis__link-arrow,
.ga-news__more-icon {
  position: relative;
  color: transparent;
  overflow: hidden;
}

.ga-services__arrow {
  --ga-arrow-fg: #0b1930;
}

.ga-whatis__more-icon,
.ga-news__more-icon {
  --ga-arrow-fg: #0b1930;
}

.ga-whatis__link-arrow {
  --ga-arrow-fg: #fff;
}

.ga-whatis__more:hover .ga-whatis__more-icon,
.ga-whatis__more:focus-visible .ga-whatis__more-icon,
.ga-news__more:hover .ga-news__more-icon,
.ga-news__more:focus-visible .ga-news__more-icon {
  --ga-arrow-fg: #fff;
  color: transparent;
}

.ga-services__arrow::after,
.ga-whatis__more-icon::after,
.ga-whatis__link-arrow::after,
.ga-news__more-icon::after {
  content: "\2192";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--ga-arrow-fg);
  line-height: 1;
  transform: translateX(0);
}

.ga-services__arrow::after {
  font-size: 15px;
}

.ga-whatis__more-icon::after {
  font-size: 1.04167cqw;
}

.ga-whatis__link-arrow::after {
  font-size: 1.25cqw;
}

.ga-news__more-icon::after {
  font-size: 17px;
}

.ga-entry-links__arrow {
  overflow: hidden;
}

.ga-entry-links__arrow span {
  display: inline-block;
}

.ga-services__arrow,
.ga-whatis__more-icon,
.ga-news__more-icon {
  background: #15b9f5;
  border-color: #15b9f5;
  border-radius: 5px;
  color: transparent;
}

.ga-services__arrow svg {
  display: none;
}

.ga-services__arrow::after,
.ga-whatis__more-icon::after,
.ga-whatis__link-arrow::after,
.ga-news__more-icon::after {
  content: "";
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='41' height='41' viewBox='0 0 41 41' fill='none'%3E%3Cpath d='M14.1909 20.2837H26.3545' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.2756 15.2049L26.3754 20.3047L21.2756 25.4045' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

.ga-contact__arrow-icon {
  overflow: hidden;
}

.ga-contact__arrow-line {
  transform-box: fill-box;
  transform-origin: center;
}

.ga-services__card:hover .ga-services__arrow::after,
.ga-services__card:focus-within .ga-services__arrow::after,
.ga-whatis__more:hover .ga-whatis__more-icon::after,
.ga-whatis__more:focus-visible .ga-whatis__more-icon::after,
.ga-whatis__link:hover .ga-whatis__link-arrow::after,
.ga-whatis__link:focus-visible .ga-whatis__link-arrow::after,
.ga-news__more:hover .ga-news__more-icon::after,
.ga-news__more:focus-visible .ga-news__more-icon::after,
.ga-contact__arrow:hover .ga-contact__arrow-line,
.ga-contact__arrow:focus-visible .ga-contact__arrow-line,
.ga-contact:hover .ga-contact__arrow-line,
.ga-contact:focus-within .ga-contact__arrow-line {
  animation: ga-arrow-slide-return 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.ga-contact__arrow {
  background: #15b9f5;
  color: #fff;
  transition: none;
}

.ga-contact__arrow::before,
.ga-entry-links__arrow::before {
  display: none;
}

.ga-contact__arrow-rect {
  fill: #15b9f5;
  stroke: #15b9f5;
  transition: none;
}

.ga-contact__arrow-line {
  stroke: #fff;
  transition: none;
}

.ga-contact__arrow:hover,
.ga-contact__arrow:focus-visible,
.ga-contact:hover .ga-contact__arrow,
.ga-contact:focus-within .ga-contact__arrow {
  color: #fff;
}

.ga-contact__arrow:hover .ga-contact__arrow-rect,
.ga-contact__arrow:focus-visible .ga-contact__arrow-rect,
.ga-contact:hover .ga-contact__arrow-rect,
.ga-contact:focus-within .ga-contact__arrow-rect {
  fill: #15b9f5;
  stroke: #15b9f5;
}

.ga-entry-links__arrow {
  background: #fff;
  color: #000;
  transition: right 300ms ease-out, bottom 300ms ease-out;
}

.ga-entry-links__arrow:hover,
.ga-entry-links__card:focus-visible .ga-entry-links__arrow {
  color: #000;
}

/* End disabled GA arrow block. */

/* === 矢印スライドアニメーション（下層ページ用に有効化） === */
.ga-contact__arrow {
  touch-action: manipulation;
  background: #15b9f5;
  color: #fff;
}

.ga-contact__arrow::before,
.ga-contact__arrow::after {
  content: none;
  display: none;
}

.ga-contact__arrow-rect {
  fill: #15b9f5;
  stroke: #15b9f5;
}

.ga-contact__arrow-line {
  stroke: #fff;
}


@media screen and (max-width: 767px) {
  .ga-contact__inner {
    height: 280px;
  }

  .ga-contact__label {
    left: 40px;
    top: 78px;
  }

  .ga-contact__title {
    left: 38px;
    top: 124px;
    font-size: 58px;
    line-height: 1;
    overflow-wrap: anywhere;
  }

  .ga-contact__arrow {
    top: 120px;
    right: 40px;
  }
}

@media screen and (max-width: 575px) {
  .ga-contact__inner {
    width: 100%;
    max-width: none;
    height: 156px;
    background: #0b1930;
  }

  .ga-contact__label {
    left: 30px;
    top: 48px;
    gap: 4.25px;
    color: #fff;
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 14px;
    letter-spacing: 0.7px;
  }

  .ga-contact__mark {
    width: 16.746px;
    height: 16.746px;
    flex: 0 0 16.746px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17' fill='none'%3E%3Cpath d='M15.0002 15.0002C15.9645 14.0359 13.7792 10.2872 10.1191 6.62712C6.45909 2.96708 2.71032 0.781744 1.74602 1.74604C0.78172 2.71035 2.96705 6.45912 6.6271 10.1192C10.2871 13.7792 14.0359 15.9645 15.0002 15.0002Z' stroke='%23fff' stroke-miterlimit='10'/%3E%3Cpath d='M1.746 15.0002C0.781704 14.0359 2.96704 10.2872 6.62708 6.62712C10.2871 2.96708 14.0359 0.781744 15.0002 1.74604C15.9645 2.71035 13.7792 6.45912 10.1191 10.1192C6.45908 13.7792 2.7103 15.9645 1.746 15.0002Z' stroke='%23fff' stroke-miterlimit='10'/%3E%3C/svg%3E");
  }

  .ga-contact__title {
    left: 30px;
    top: 78px;
    color: #fff;
    font-family: "Google Sans Flex", "Outfit", sans-serif;
    font-size: 36px;
    font-weight: 400;
    line-height: 52px;
    letter-spacing: 0;
  }

  .ga-contact__arrow {
    top: 58px;
    right: 30px;
    width: 40px;
    height: 40px;
  }

  .ga-contact__arrow-icon {
    width: 40px;
    height: 40px;
  }
}

/* ===== Contact ratio patch ===== */
@media screen and (min-width: 1280px) {
  .ga-contact {
    container-type: inline-size;
  }

  .ga-contact__inner {
    width: min(100%, 1920px);
    max-width: 1920px;
    height: min(calc(338 / var(--design-pc) * 100vw), 450.667px);
    container-type: inline-size;
  }

  .ga-contact__label {
    left: calc(80 / var(--design-pc) * 100cqw);
    top: calc(101 / var(--design-pc) * 100cqw);
    gap: calc(3.25 / var(--design-pc) * 100cqw);
    font-size: max(14px, calc(14 / var(--design-pc) * 100cqw));
    line-height: max(14px, calc(14 / var(--design-pc) * 100cqw));
    letter-spacing: calc(0.7 / var(--design-pc) * 100cqw);
  }

  .ga-contact__mark {
    width: calc(16.75 / var(--design-pc) * 100cqw);
    height: calc(16.75 / var(--design-pc) * 100cqw);
    flex-basis: calc(16.75 / var(--design-pc) * 100cqw);
  }

  .ga-contact__title {
    left: calc(78 / var(--design-pc) * 100cqw);
    top: calc(157 / var(--design-pc) * 100cqw);
    font-size: calc(70 / var(--design-pc) * 100cqw);
    line-height: calc(66 / var(--design-pc) * 100cqw);
  }

  .ga-contact__arrow {
    top: calc(149 / var(--design-pc) * 100cqw);
    right: calc(78 / var(--design-pc) * 100cqw);
    width: calc(40 / var(--design-pc) * 100cqw);
    height: calc(40 / var(--design-pc) * 100cqw);
    border-radius: calc(5 / var(--design-pc) * 100cqw);
  }

  .ga-contact__arrow::before {
    border-radius: calc(5 / var(--design-pc) * 100cqw);
  }

  .ga-contact__arrow-icon {
    width: calc(40 / var(--design-pc) * 100cqw);
    height: calc(40 / var(--design-pc) * 100cqw);
  }
}

@media screen and (max-width: 575px) {
  .ga-contact {
    container-type: inline-size;
    margin-bottom: 0;
    padding-bottom: 0;
    background: #0b1930;
  }

  .ga-contact__inner {
    width: 100%;
    max-width: none;
    height: calc(156 / var(--design-sp) * 100cqw);
    margin-bottom: 0;
  }

  .ga-contact__label {
    left: calc(30 / var(--design-sp) * 100cqw);
    top: calc(48 / var(--design-sp) * 100cqw);
    gap: calc(4.25 / var(--design-sp) * 100cqw);
    font-size: 14px;
    line-height: 14px;
    letter-spacing: 0.7px;
  }

  .ga-contact__mark {
    width: calc(16.746 / var(--design-sp) * 100cqw);
    height: calc(16.746 / var(--design-sp) * 100cqw);
    flex-basis: calc(16.746 / var(--design-sp) * 100cqw);
  }

  .ga-contact__title {
    left: calc(30 / var(--design-sp) * 100cqw);
    top: calc(78 / var(--design-sp) * 100cqw);
    font-size: calc(36 / var(--design-sp) * 100cqw);
    line-height: calc(52 / var(--design-sp) * 100cqw);
  }

  .ga-contact__arrow {
    top: calc(58 / var(--design-sp) * 100cqw);
    right: calc(30 / var(--design-sp) * 100cqw);
    width: calc(40 / var(--design-sp) * 100cqw);
    height: calc(40 / var(--design-sp) * 100cqw);
    border-radius: calc(5 / var(--design-sp) * 100cqw);
  }

  .ga-contact__arrow::before {
    border-radius: calc(5 / var(--design-sp) * 100cqw);
  }

  .ga-contact__arrow-icon {
    width: calc(40 / var(--design-sp) * 100cqw);
    height: calc(40 / var(--design-sp) * 100cqw);
  }

  .ga-contact__arrow,
  .ga-contact__arrow::before,
  .ga-contact__arrow::after,
  .ga-contact__arrow-line,
  .ga-contact__arrow-rect,
  .ga-contact__arrow:hover .ga-contact__arrow-line,
  .ga-contact__arrow:focus-visible .ga-contact__arrow-line,
  .ga-contact__arrow:active .ga-contact__arrow-line,
  .ga-contact:hover .ga-contact__arrow-line,
  .ga-contact:focus-within .ga-contact__arrow-line,
  .ga-contact:active .ga-contact__arrow-line {
    animation: none;
    transition: none;
  }
}


/* ===== Footer SP final company panel ===== */
@media screen and (max-width: 575px) {
  #footer.ga-footer {
    margin-top: 0 !important;
    padding: 0 !important;
  }

  #footer.ga-footer .ga-footer__inner {
    width: 100% !important;
    max-width: none !important;
    padding: 52px 20px 0 !important;
    box-sizing: border-box !important;
  }

  #footer.ga-footer .ga-footer__catch {
    max-width: 100% !important;
    margin: 0 !important;
    color: #fff !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 30px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 43px !important;
    letter-spacing: 0 !important;
    text-shadow: none !important;
  }

  #footer.ga-footer .ga-footer__nav {
    width: 100% !important;
    margin-top: 48px !important;
    padding: 0 !important;
  }

  #footer.ga-footer .ga-footer__nav-heading,
  #footer.ga-footer .ga-footer__nav-list--primary a {
    color: #fff !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 16px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 16px !important;
    letter-spacing: 0 !important;
    text-shadow: none !important;
  }

  #footer.ga-footer .ga-footer__nav-heading + .ga-footer__nav-list {
    padding-top: 20px !important;
  }

  #footer.ga-footer .ga-footer__nav-list {
    gap: 15px !important;
  }

  #footer.ga-footer .ga-footer__nav-list a,
  #footer.ga-footer .ga-footer__nav-group--personal .ga-footer__nav-list a,
  #footer.ga-footer .ga-footer__nav-group--corporate .ga-footer__nav-list a {
    display: inline-block !important;
    align-items: initial !important;
    gap: 0 !important;
    padding-left: 0 !important;
    color: #fff !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 14px !important;
    letter-spacing: 0 !important;
    text-shadow: none !important;
  }

  #footer.ga-footer .ga-footer__nav-group--about .ga-footer__nav-list a::before,
  #footer.ga-footer .ga-footer__nav-group--personal .ga-footer__nav-list a::before,
  #footer.ga-footer .ga-footer__nav-group--corporate .ga-footer__nav-list a::before {
    content: none !important;
    display: none !important;
  }

  #footer.ga-footer .ga-footer__nav-list--primary {
    gap: 30px !important;
  }

  #footer.ga-footer .ga-footer__nav-list--primary a {
    width: auto !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 16px !important;
  }

  #footer.ga-footer .ga-footer__company {
    position: relative !important;
    width: 100vw !important;
    height: 224px !important;
    min-height: 224px !important;
    margin: 116px calc(50% - 50vw) 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 10px 10px 0 0 !important;
    background: #15b9f5 !important;
    box-shadow: none !important;
    transform: none !important;
    transition: none !important;
    overflow: hidden !important;
  }

  #footer.ga-footer .ga-footer__company.is-expanded {
    height: 224px !important;
    min-height: 274px !important;
    padding: 0 !important;
  }

  #footer.ga-footer .ga-footer__company::before,
  #footer.ga-footer .ga-footer__company::after {
    display: none !important;
  }

  #footer.ga-footer .ga-footer__brand,
  #footer.ga-footer .ga-footer__company-name,
  #footer.ga-footer .ga-footer__address,
  #footer.ga-footer .ga-footer__bottom {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: none !important;
  }

  #footer.ga-footer .ga-footer__brand {
    position: absolute !important;
    left: 20px !important;
    top: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8.43px !important;
    max-width: calc(100% - 116px) !important;
    margin: 0 !important;
  }

  #footer.ga-footer .ga-footer__brand-mark {
    width: 40.982px !important;
    height: 41.014px !important;
    flex: 0 0 40.982px !important;
    filter: brightness(0) invert(1) !important;
  }

  #footer.ga-footer .ga-footer__brand-text {
    display: block !important;
    width: 223.577px !important;
    height: 24.963px !important;
    flex: 0 1 auto !important;
    max-width: calc(100vw - 152px) !important;
    overflow: hidden !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    background: url("assets/images/common/logo-text.svg") left center / contain no-repeat !important;
    filter: brightness(0) invert(1) !important;
  }

  #footer.ga-footer .ga-footer__company-name {
    position: absolute !important;
    left: 20px !important;
    top: 83px !important;
    margin: 0 !important;
    color: #fff !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 15px !important;
    font-style: normal !important;
    font-weight: 500 !important;
    line-height: 28px !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  #footer.ga-footer .ga-footer__address {
    position: absolute !important;
    left: 20px !important;
    top: 113px !important;
    margin: 0 !important;
    color: #fff !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 15px !important;
    font-style: normal !important;
    font-weight: 500 !important;
    line-height: 28px !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  #footer.ga-footer .ga-footer__to-top {
    --ga-footer-to-top-icon-size: 8px;
    top: 10px !important;
    right: 10px !important;
    display: grid !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #313131 !important;
  }

  #footer.ga-footer .ga-footer__bottom {
    position: absolute !important;
    left: 23px !important;
    right: auto !important;
    bottom: 80px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 29px !important;
    margin: 0 !important;
  }

  #footer.ga-footer .ga-footer__bottom a {
    color: #fff !important;
    font-family: Inter, "Noto Sans JP", sans-serif !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: normal !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  #footer.ga-footer .ga-footer__bottom small {
    color: #fff !important;
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: normal !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }
}

/* ========================================================================
   .ga-entry-links（SIMULATION + RECRUIT カード）
   front.css から共通CSSへ移動。.ga-contact 等を含むマルチセレクタは
   front.css 側に残し、純粋なルールだけをここに移植。
   ======================================================================== */

@media screen and (max-width: 575px) {
  .ga-entry-links {
    padding: calc(50 / var(--design-sp) * 100vw) 0 calc(50 / var(--design-sp) * 100vw) !important;
    background: #fff !important;
  }

  .ga-entry-links__inner {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: calc(20 / var(--design-sp) * 100vw) !important;
    width: calc(355 / var(--design-sp) * 100vw) !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .ga-entry-links__card {
    width: 100% !important;
    height: calc(189 / var(--design-sp) * 100vw) !important;
    min-height: calc(189 / var(--design-sp) * 100vw) !important;
    overflow: hidden !important;
    border: 1px solid #31807e !important;
    border-radius: calc(10 / var(--design-sp) * 100vw) !important;
    background: #31807e !important;
    color: #fff !important;
  }

  .ga-entry-links__card::before {
    inset: 0 !important;
    border: 1px solid #31807e !important;
    border-radius: calc(10 / var(--design-sp) * 100vw) !important;
    background: #31807e !important;
  }

  .ga-entry-links__card--recruit {
    border-color: #31807e !important;
    background: #31804f !important;
  }

  .ga-entry-links__card--recruit::before {
    border-color: #31807e !important;
    background: #31804f !important;
  }

  .ga-entry-links__body {
    top: calc(40 / var(--design-sp) * 100vw) !important;
    left: 50% !important;
    width: 100% !important;
    align-items: center !important;
    transform: translateX(-50%) !important;
  }

  .ga-entry-links__label {
    gap: calc(4 / var(--design-sp) * 100vw) !important;
    color: #fff !important;
    font-family: "A-OTF Gothic MB101 Pr5", "Noto Sans JP", sans-serif !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 14px !important;
    letter-spacing: 0.7px !important;
  }

  .ga-entry-links__card--recruit .ga-entry-links__body {
    top: calc(36 / var(--design-sp) * 100vw) !important;
  }

  .ga-entry-links__card--recruit .ga-entry-links__label {
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif !important;
  }

  .ga-entry-links__mark {
    width: calc(16.747 / var(--design-sp) * 100vw) !important;
    height: calc(16.746 / var(--design-sp) * 100vw) !important;
    flex: 0 0 calc(16.747 / var(--design-sp) * 100vw) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17' fill='none'%3E%3Cpath d='M15.0002 15.0004C15.9645 14.0361 13.7791 10.2873 10.1191 6.62727C6.45904 2.96723 2.71027 0.781896 1.74597 1.7462C0.781665 2.7105 2.967 6.45927 6.62704 10.1193C10.2871 13.7794 14.0359 15.9647 15.0002 15.0004Z' stroke='white' stroke-miterlimit='10'/%3E%3Cpath d='M1.74637 15.0004C0.782069 14.0361 2.9674 10.2873 6.62745 6.62727C10.2875 2.96723 14.0363 0.781896 15.0006 1.7462C15.9649 2.7105 13.7795 6.45927 10.1195 10.1193C6.45945 13.7794 2.71068 15.9647 1.74637 15.0004Z' stroke='white' stroke-miterlimit='10'/%3E%3C/svg%3E") !important;
  }

  .ga-entry-links__title {
    width: calc(316 / var(--design-sp) * 100vw) !important;
    max-width: calc(100% - calc(40 / var(--design-sp) * 100vw)) !important;
    margin: calc(11 / var(--design-sp) * 100vw) 0 0 !important;
    color: #fff !important;
    text-align: center !important;
    font-family: "Google Sans Flex", "Outfit", sans-serif !important;
    font-size: clamp(30px, calc(35 / var(--design-sp) * 100vw), 42px) !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: clamp(30px, calc(35 / var(--design-sp) * 100vw), 42px) !important;
    letter-spacing: 0 !important;
  }

  .ga-entry-links__lead {
    width: calc(315 / var(--design-sp) * 100vw) !important;
    max-width: calc(100% - calc(40 / var(--design-sp) * 100vw)) !important;
    margin: calc(10 / var(--design-sp) * 100vw) 0 0 !important;
    color: #fff !important;
    font-family: var(--16-px-32-rem-5, "Noto Sans JP") !important;
    font-size: 13px !important;
    font-style: normal !important;
    font-weight: 500 !important;
    line-height: 23px !important;
    letter-spacing: 0.65px !important;
    white-space: normal !important;
  }

  .ga-entry-links__arrow {
    width: calc(30 / var(--design-sp) * 100vw) !important;
    height: calc(30 / var(--design-sp) * 100vw) !important;
    border-radius: calc(5 / var(--design-sp) * 100vw) !important;
  }

  .ga-entry-links__card::after {
    width: calc(30 / var(--design-sp) * 100vw) !important;
    height: calc(30 / var(--design-sp) * 100vw) !important;
    border-bottom-right-radius: calc(10 / var(--design-sp) * 100vw) !important;
  }

  .ga-entry-links__arrow::after {
    background-size: calc(30 / var(--design-sp) * 100vw) calc(30 / var(--design-sp) * 100vw) !important;
  }
}

/* ===== Simulation / Recruit ===== */
.ga-entry-links {
  margin-left: calc(50% - 50vw);
  width: 100vw;
  box-sizing: border-box;
  padding: 46px 0 80px;
  background: #fff;
}

.ga-entry-links__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
  width: min(calc(100% - 60px), 1380px);
  margin: 0 auto;
}

.ga-entry-links__card {
  --ga-entry-hover-bg: #31807f;
  position: relative;
  height: 427px;
  overflow: hidden;
  box-sizing: border-box;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #000;
  text-align: center;
  text-decoration: none;
}

.ga-entry-links__card::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  box-sizing: border-box;
  border: 1px solid #ccc;
  border-radius: 10px;
  background: #fff;
  content: "";
  transition: inset 300ms ease-out, border-color 300ms ease-out, background-color 300ms ease-out, border-radius 300ms ease-out;
}

.ga-entry-links__card::after {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
  width: 40px;
  height: 40px;
  box-sizing: border-box;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  border-bottom-right-radius: 10px;
  pointer-events: none;
  content: "";
  opacity: 1;
  transition: opacity 0ms linear 300ms;
}

.ga-entry-links__body {
  position: absolute;
  top: 125px;
  left: 50%;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin-top: 0;
  transform: translateX(-50%);
}

.ga-entry-links__label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #000;
  font-family: "A-OTF Gothic MB101 Pr5", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 14px;
  letter-spacing: 0.7px;
}

.ga-entry-links__mark {
  display: inline-block;
  width: 16.75px;
  height: 16.75px;
  flex: 0 0 16.75px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 15 15' fill='none'%3E%3Cpath d='M0.727327 13.9818C-0.236973 13.0175 1.94836 9.26873 5.6084 5.60869C9.26845 1.94864 13.0172 -0.236689 13.9815 0.727612C14.9458 1.69191 12.7605 5.44068 9.10044 9.10073C5.4404 12.7608 1.69163 14.9461 0.727327 13.9818Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3Cpath d='M13.9817 13.9818C14.946 13.0175 12.7606 9.26873 9.10058 5.60869C5.44054 1.94864 1.69177 -0.236689 0.727466 0.727612C-0.236835 1.69191 1.9485 5.44068 5.60854 9.10073C9.26858 12.7608 13.0174 14.9461 13.9817 13.9818Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.ga-entry-links__title {
  margin: 9px 0 0;
  color: #000;
  font-family: "Google Sans Flex", "Outfit", sans-serif;
  font-size: 50px;
  font-weight: 400;
  line-height: 66px;
  letter-spacing: 0;
  white-space: nowrap;
}

.ga-entry-links__lead {
  width: 520px;
  max-width: calc(100% - 158px);
  margin: 17px 0 0;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 32px;
  letter-spacing: 0.8px;
  /* [ENTRY-LINKS-SEMANTIC] p要素の本文を幅に合わせて自然に改行 */
  white-space: normal;
  text-wrap: balance;
}

/* [ENTRY-LINKS-PC-BREAK] 1440px基準の改行。SP・タブレットでは自然改行を維持 */
.ga-entry-links__pc-break {
  display: none;
}

.ga-entry-links__sp-break {
  display: none;
}

.ga-entry-links__card--recruit .ga-entry-links__label,
.ga-entry-links__card--recruit .ga-entry-links__title {
  color: #313131;
}

.ga-entry-links__card--recruit .ga-entry-links__label {
  font-family: "Google Sans Flex", "Noto Sans JP", sans-serif;
}

.ga-entry-links__card--recruit {
  --ga-entry-hover-bg: #31804f;
}

.ga-entry-links__card:hover::before,
.ga-entry-links__card:focus-visible::before {
  inset: 20px;
  border-color: transparent;
  border-radius: 5px;
  background: var(--ga-entry-hover-bg);
}

.ga-entry-links__card:hover::after,
.ga-entry-links__card:focus-visible::after {
  opacity: 0;
  transition-delay: 0ms;
}

.ga-entry-links__card:hover .ga-entry-links__label,
.ga-entry-links__card:hover .ga-entry-links__title,
.ga-entry-links__card:hover .ga-entry-links__lead,
.ga-entry-links__card:focus-visible .ga-entry-links__label,
.ga-entry-links__card:focus-visible .ga-entry-links__title,
.ga-entry-links__card:focus-visible .ga-entry-links__lead {
  color: #fff;
}

.ga-entry-links__arrow {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  overflow: hidden;
  box-sizing: border-box;
  border: 1px solid #ccc;
  border-radius: 5px;
  background: #fff;
  color: #000;
  font-family: "Outfit", sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
  transition: right 300ms ease-out, bottom 300ms ease-out, color 0.25s ease;
}

.ga-entry-links__arrow::before {
  position: absolute;
  inset: -1px 100% -1px auto;
  z-index: 0;
  width: calc(100% + 2px);
  border-radius: 5px;
  background: #15b9f5;
  content: "";
  transition: right 0.28s ease;
}

.ga-entry-links__arrow span {
  position: relative;
  z-index: 1;
}

.ga-entry-links__card:hover .ga-entry-links__arrow,
.ga-entry-links__card:focus-visible .ga-entry-links__arrow {
  right: 20px;
  bottom: 20px;
}

.ga-entry-links__arrow:hover,
.ga-entry-links__card:focus-visible .ga-entry-links__arrow {
  color: #fff;
}

.ga-entry-links__arrow:hover::before,
.ga-entry-links__card:focus-visible .ga-entry-links__arrow::before {
  right: -1px;
}

@media screen and (max-width: 1279px) {
  .ga-entry-links {
    padding: 40px 0 64px;
  }

  .ga-entry-links__inner {
    grid-template-columns: 1fr;
    width: min(calc(100% - 40px), 720px);
  }

  .ga-entry-links__card {
    height: 320px;
  }

  .ga-entry-links__body {
    top: 78px;
  }

  .ga-entry-links__title {
    font-size: 42px;
    line-height: 1.2;
  }

  .ga-entry-links__lead {
    width: auto;
    max-width: calc(100% - 48px);
    margin-top: 22px;
    font-size: 15px;
    line-height: 2;
    letter-spacing: 0.05em;
    white-space: normal;
  }
}

@media screen and (max-width: 575px) {
  .ga-entry-links {
    padding: 32px 0 50px;
  }

  .ga-entry-links__inner {
    width: min(calc(100% - 32px), 420px);
    gap: 18px;
  }

  .ga-entry-links__card {
    height: 260px;
  }

  .ga-entry-links__body {
    top: 56px;
    width: calc(100% - 42px);
  }

  .ga-entry-links__label {
    font-size: 12px;
    line-height: 1.4;
  }

  .ga-entry-links__title {
    margin-top: 14px;
    font-size: clamp(34px, 10vw, 42px);
  }

  .ga-entry-links__lead {
    margin-top: 18px;
    font-size: 13px;
    line-height: 1.9;
  }
}

.ga-entry-links__arrow span {
  position: relative !important;
  z-index: 1 !important;
  display: inline-block !important;
}

/* 矢印スライドアニメーション（CONTACT / SIMULATION / RECRUIT 等） */
/* ===== PC Simulation / Recruit ratio patch ===== */
@media screen and (min-width: 1280px) {
  .ga-entry-links {
    width: min(100vw, 1920px);
    max-width: 1920px;
    margin-right: 0;
    margin-left: calc(50% - min(50vw, 960px));
    container-type: inline-size;
    padding-top: min(calc(46 / var(--design-pc) * 100vw), 61.333px);
    padding-bottom: min(calc(80 / var(--design-pc) * 100vw), 106.667px);
  }

  .ga-entry-links__inner {
    gap: calc(26 / var(--design-pc) * 100cqw);
    width: calc(1380 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__card {
    height: calc(427 / var(--design-pc) * 100cqw);
    border-radius: calc(10 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__card::before {
    border-radius: calc(10 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__card::after {
    width: calc(40 / var(--design-pc) * 100cqw);
    height: calc(40 / var(--design-pc) * 100cqw);
    border-bottom-right-radius: calc(10 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__body {
    top: calc(125 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__label {
    gap: calc(4 / var(--design-pc) * 100cqw);
    font-size: max(14px, calc(14 / var(--design-pc) * 100cqw));
    line-height: max(14px, calc(14 / var(--design-pc) * 100cqw));
    letter-spacing: calc(0.7 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__mark {
    width: calc(16.75 / var(--design-pc) * 100cqw);
    height: calc(16.75 / var(--design-pc) * 100cqw);
    flex-basis: calc(16.75 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__title {
    margin-top: calc(9 / var(--design-pc) * 100cqw);
    font-size: calc(50 / var(--design-pc) * 100cqw);
    line-height: calc(66 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__lead {
    width: calc(520 / var(--design-pc) * 100cqw);
    max-width: calc(100% - calc(158 / var(--design-pc) * 100cqw));
    margin-top: calc(17 / var(--design-pc) * 100cqw);
    font-size: max(14px, calc(16 / var(--design-pc) * 100cqw));
    line-height: max(28px, calc(32 / var(--design-pc) * 100cqw));
    letter-spacing: calc(0.8 / var(--design-pc) * 100cqw);
    white-space: nowrap;
  }

  .ga-entry-links__pc-break {
    display: inline;
  }

  .ga-entry-links__card:hover::before,
  .ga-entry-links__card:focus-visible::before {
    inset: calc(20 / var(--design-pc) * 100cqw);
    border-radius: calc(5 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__arrow {
    width: calc(40 / var(--design-pc) * 100cqw);
    height: calc(40 / var(--design-pc) * 100cqw);
    border-radius: calc(5 / var(--design-pc) * 100cqw);
    font-size: max(14px, calc(18 / var(--design-pc) * 100cqw));
  }

  .ga-entry-links__arrow::before {
    border-radius: calc(5 / var(--design-pc) * 100cqw);
  }

  .ga-entry-links__card:hover .ga-entry-links__arrow,
  .ga-entry-links__card:focus-visible .ga-entry-links__arrow {
    right: calc(20 / var(--design-pc) * 100cqw);
    bottom: calc(20 / var(--design-pc) * 100cqw);
  }
}

@keyframes ga-arrow-slide-return {
  0% {
    transform: translateX(0);
  }
  44% {
    transform: translateX(145%);
  }
  45% {
    transform: translateX(-145%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes ga-entry-links-span-leftbar-seq {
  0%, 12% { opacity: 1; }
  50%, 62% { opacity: 0; }
  96%, 100% { opacity: 1; }
}

@keyframes ga-entry-links-span-rightgroup-seq {
  0%, 24% { opacity: 1; }
  58%, 74% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes ga-entry-links-span-leftbar-restart-seq {
  0%, 12% { opacity: 1; }
  50%, 62% { opacity: 0; }
  96%, 100% { opacity: 1; }
}

@keyframes ga-entry-links-span-rightgroup-restart-seq {
  0%, 24% { opacity: 1; }
  58%, 74% { opacity: 0; }
  100% { opacity: 1; }
}

/* GA entry links arrow hover motion: burger-style paired slide override */
.ga-entry-links .ga-entry-links__arrow {
  overflow: hidden !important;
  background: #fff !important;
  color: transparent !important;
}

.ga-entry-links .ga-entry-links__arrow:hover,
.ga-entry-links .ga-entry-links__arrow:focus-visible {
  background: #fff !important;
  color: transparent !important;
}

.ga-entry-links .ga-entry-links__arrow::before,
.ga-entry-links .ga-entry-links__arrow::after {
  content: none !important;
  display: none !important;
  animation: none !important;
  transition: none !important;
}

.ga-entry-links .ga-entry-links__arrow span {
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  pointer-events: none !important;
}

.ga-entry-links .ga-entry-links__arrow span::before,
.ga-entry-links .ga-entry-links__arrow span::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='41' height='41' viewBox='0 0 41 41' fill='none'%3E%3Cpath d='M14.1909 20.2837H26.3545' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.2756 15.2049L26.3754 20.3047L21.2756 25.4045' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center center / 100% 100% no-repeat !important;
  opacity: 1 !important;
  pointer-events: none !important;
  transition: none !important;
  will-change: transform;
  backface-visibility: hidden;
}

.ga-entry-links .ga-entry-links__arrow span::before {
  z-index: 1 !important;
  transform: translateX(0);
  animation: none !important;
}

.ga-entry-links .ga-entry-links__arrow span::after {
  z-index: 0 !important;
  transform: translateX(-100%);
  animation: none !important;
}

.ga-entry-links .ga-entry-links__card.is-hover .ga-entry-links__arrow span::before {
  animation: ga-entry-links-arrow-in 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0.2s 1 normal both !important;
}

.ga-entry-links .ga-entry-links__card.is-hover .ga-entry-links__arrow span::after {
  animation: ga-entry-links-arrow-out 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0s 1 normal both !important;
}

.ga-entry-links .ga-entry-links__card.is-hover:hover .ga-entry-links__arrow span::before,
.ga-entry-links .ga-entry-links__card.is-hover:focus-visible .ga-entry-links__arrow span::before,
.ga-entry-links .ga-entry-links__card.is-hover:focus-within .ga-entry-links__arrow span::before,
.ga-entry-links .ga-entry-links__card.is-hover:active .ga-entry-links__arrow span::before {
  animation: ga-entry-links-arrow-out 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0s 1 normal both !important;
}

.ga-entry-links .ga-entry-links__card.is-hover:hover .ga-entry-links__arrow span::after,
.ga-entry-links .ga-entry-links__card.is-hover:focus-visible .ga-entry-links__arrow span::after,
.ga-entry-links .ga-entry-links__card.is-hover:focus-within .ga-entry-links__arrow span::after,
.ga-entry-links .ga-entry-links__card.is-hover:active .ga-entry-links__arrow span::after {
  animation: ga-entry-links-arrow-in 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0.2s 1 normal both !important;
}

@keyframes ga-entry-links-arrow-in {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes ga-entry-links-arrow-out {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ga-entry-links .ga-entry-links__arrow span::before {
    animation: none !important;
    transform: translateX(0) !important;
  }

  .ga-entry-links .ga-entry-links__arrow span::after {
    animation: none !important;
    transform: translateX(-100%) !important;
  }
}

/* GA contact arrow hover motion: PC-only burger CTA sequence */
@media screen and (min-width: 1280px) {
  .ga-contact__arrow {
    overflow: hidden !important;
    background: #15b9f5 !important;
    color: #fff !important;
  }

  .ga-contact__arrow::before,
  .ga-contact__arrow::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    animation: none !important;
    pointer-events: none !important;
    transition: none !important;
    will-change: transform;
    backface-visibility: hidden;
  }

  .ga-contact__arrow::before {
    z-index: 3 !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='41' height='41' viewBox='0 0 41 41' fill='none'%3E%3Cpath d='M14.1909 20.2837H26.3545' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.2756 15.2049L26.3754 20.3047L21.2756 25.4045' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center center / 100% 100% no-repeat !important;
    transform: translateX(0);
  }

  .ga-contact__arrow::after {
    z-index: 2 !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='41' height='41' viewBox='0 0 41 41' fill='none'%3E%3Cpath d='M14.1909 20.2837H26.3545' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.2756 15.2049L26.3754 20.3047L21.2756 25.4045' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center center / 100% 100% no-repeat !important;
    transform: translateX(-100%);
  }

  .ga-contact__arrow-icon {
    position: relative !important;
    z-index: 1 !important;
  }

  .ga-contact__arrow-line {
    display: none !important;
    opacity: 0 !important;
    transform: none !important;
    animation: none !important;
  }

  .ga-contact__arrow-rect {
    fill: #15b9f5 !important;
    stroke: #15b9f5 !important;
  }
}

@media screen and (min-width: 1280px) and (hover: hover) and (pointer: fine) {
  .ga-contact.is-hover .ga-contact__arrow::before {
    animation: ga-contact-arrow-in 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0.2s 1 normal both !important;
  }

  .ga-contact.is-hover .ga-contact__arrow::after {
    animation: ga-contact-arrow-out 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0s 1 normal both !important;
  }

  .ga-contact.is-hover:hover .ga-contact__arrow::after,
  .ga-contact.is-hover:focus-within .ga-contact__arrow::after,
  .ga-contact.is-hover .ga-contact__arrow:hover::after,
  .ga-contact.is-hover .ga-contact__arrow:focus-visible::after {
    animation: ga-contact-arrow-in 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0.2s 1 normal both !important;
  }

  .ga-contact.is-hover:hover .ga-contact__arrow::before,
  .ga-contact.is-hover:focus-within .ga-contact__arrow::before,
  .ga-contact.is-hover .ga-contact__arrow:hover::before,
  .ga-contact.is-hover .ga-contact__arrow:focus-visible::before {
    animation: ga-contact-arrow-out 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0s 1 normal both !important;
  }
}

@keyframes ga-contact-arrow-in {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes ga-contact-arrow-out {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}

/* ========================================
   ga-burger-trigger の vw 化（PC版）
   別ファイル ga-burger-menu.css の固定px値を上書き
   1440px基準（px ÷ 1440 × 100 = vw）
   ※ !important で確実に上書き
   ※ ホバー時の3本線の長さ変化を「width変化」ではなく
     「transform: scaleX()」で実装することで、ズーム時の
     「3本線が広がったり狭まったり」する現象を防ぐ。
     widthは常に1.25vw（18px相当）で固定、scaleXで長さを変える。
     ホバーアニメ自体は維持される。
   ======================================== */
@media screen and (min-width: 1280px) {
  .ga-burger-trigger {
    width: 3.1944vw !important;   /* 46px */
    height: 3.1944vw !important;  /* 46px */
    border-radius: 0.3472vw !important; /* 5px */
    box-sizing: border-box !important;
    background-color: #15b9f5 !important;
  }

  .ga-burger-trigger--pc {
    position: static !important;
    top: auto !important;
    right: auto !important;
    flex: 0 0 3.1944vw !important;       /* 46px */
    margin-left: 1.0417vw !important;    /* 15px */
    z-index: 12030 !important;
  }

  .ga-burger-trigger span {
    width: 1.25vw !important;        /* 18px - 全本同じ長さに統一 */
    height: 0.1389vw !important;     /* 2px */
    border-radius: 999px;            /* 真円維持なのでpxのまま */
    transform-origin: left center;   /* scaleXの原点を左端に */
  }

  /* 初期位置（縦方向の配置のみ） */
  .ga-burger-trigger span:nth-child(1) {
    transform: translateY(-0.4167vw) !important; /* -6px */
  }

  .ga-burger-trigger span:nth-child(2) {
    transform: translateY(0) !important;
  }

  .ga-burger-trigger span:nth-child(3) {
    transform: translateY(0.4167vw) !important; /* 6px */
  }

  /* ホバー時のアニメーション：widthは変えず、transform: scaleX で長さ変化 */
  .pc .ga-burger-trigger:hover span:nth-child(1),
  .ga-burger-trigger.is-ga-burger-clicking span:nth-child(1) {
    width: 1.25vw !important;                                       /* 18px維持 */
    transform: translate(0, -0.4167vw) scaleX(1) !important;        /* 0, -6px, 長さ100% */
  }

  .pc .ga-burger-trigger:hover span:nth-child(2),
  .ga-burger-trigger.is-ga-burger-clicking span:nth-child(2) {
    width: 1.25vw !important;                                       /* 18px維持 */
    transform: translate(0, 0) scaleX(0.7778) !important;           /* 左端固定, 長さ14/18 */
  }

  .pc .ga-burger-trigger:hover span:nth-child(3),
  .ga-burger-trigger.is-ga-burger-clicking span:nth-child(3) {
    width: 1.25vw !important;                                       /* 18px維持 */
    transform: translate(0, 0.4167vw) scaleX(0.5556) !important;    /* 左端固定, 長さ10/18 */
  }
}

/* ========================================
   ロゴ a のジッター対策（拡大縮小時の「枠が動く」現象の解消）
   ----------------------------------------------------------
   style.css 内の ".pc a { transition: 0.5s; }" により、
   PCモードの全 a タグに transition: all 0.5s が適用されている。
   これにより、ヘッダーロゴ（vw単位）の width/height/padding 等が
   ズーム時に連続変化する際、すべてのプロパティに 0.5秒のアニメが
   発火し、「枠が大きくなったり戻ったり」する現象が発生していた。

   対策：ロゴ a の transition を「色・背景色・透明度・transform」
   に限定し、サイズ系プロパティを transition の対象から外す。

   詳細度：.pc #header .logo a（0,1,2,1）> .pc a（0,0,1,1）なので上書き可。
   ======================================== */
@media screen and (min-width: 1280px) {
  .pc #header .logo a {
    transition: color 0.5s, background-color 0.5s, opacity 0.5s, transform 0.5s;
  }
}

/* ========================================
   ハンバーガー3本線のジッター対策
   ----------------------------------------------------------
   ga-burger-menu.css の ".ga-burger-trigger span" に
   "transition: transform 0.24s, width 0.24s" が指定されており、
   width が transition 対象になっている。
   vw化した3本線（1.25vw）が、ズーム時に連続変化する際に
   0.24秒の width アニメが発火し、「3本線が広がったり狭まったり」
   する現象が発生していた。

   対策：width を transition の対象から外し、transform のみアニメ。
   副作用：ホバー時の「3本線が短くなる」アニメは即時切替になる
   （0.24秒のスムーズな変化 → 一瞬で切替）。
   ======================================== */
@media screen and (min-width: 1280px) {
  .ga-burger-trigger span {
    transition: transform 0.24s !important;
  }
}

/* ========================================
   「右側の白い余白」対策
   ----------------------------------------------------------
   ga-burger-menu.css の冒頭に
   `html, body { scrollbar-gutter: stable; }` が指定されており、
   body 内の要素が scrollbar 領域 (15px) を再度予約してしまい、
   右側に白い余白が発生していた。

   現象：
   - ヒーロー(100vw)から下スクロールで急に右側に15pxの白い余白
   - 左右の余白が非対称（左94.5px、右109.5px）

   対策：body の scrollbar-gutter のみ auto に上書き。
   html 側は stable のまま維持（短いページのレイアウトガタつき防止）。
   ======================================== */
body {
  scrollbar-gutter: auto;
}

/* ========================================
   ハンバーガーメニュー開閉時の位置ジャンプ対策
   ----------------------------------------------------------
   現象：
   メニュー開閉時に、ハンバーガーボタンと閉じるボタンの位置が
   横に scrollbar 幅（通常15px）分ズレる。ユーザーから見ると
   「閉じた瞬間にハンバーガーが横にジャンプ」して見える。

   原因：
   - メニュー開くと body の overflow が hidden になり scrollbar が消える
     → viewport の clientWidth が scrollbar 幅分広がる
   - ハンバーガーはヘッダー内（body の中、clientWidth 基準で配置）
   - 閉じるボタンは メニューパネル内（fixed の中、viewport 基準で配置）
   - 両者の基準が違うため、scrollbar が消えると位置がズレる

   対策：
   scrollbar-gutter: stable 対応ブラウザではスクロールバー幅を常時確保し、
   JS/CSS の 15px 横移動補正を発火させない。
   ======================================== */
@supports (scrollbar-gutter: stable) {
  body:has(.ga-burger-menu.is-active) {
    padding-right: 0 !important;
  }

  .ga-burger-menu__close {
    right: 30px !important;
  }
}

@media screen and (min-width: 1280px) {
  #global_nav_pc,
  html.is-ga-burger-open #global_nav_pc {
    -webkit-transition: none !important;
    -moz-transition: none !important;
    -ms-transition: none !important;
    -o-transition: none !important;
    transition: none !important;
  }
}

html.is-ga-burger-open #global_nav_pc {
  transform: none !important;
}

/* ==========================================================================
   Great Attractor ヘッダーロゴ：疑似要素方式 → <img> 方式への移行（SEO対応）
   - header.php で .logo-mark / .logo-text の <img> を出力する前提
   - 既存の ::before / ::after / font-size:0 を無効化し、<img> のサイズ指定で表示
   ========================================================================== */

/* 既存の疑似要素（マーク・テキスト）を無効化 */
#header .logo a::before,
#header .logo a .h1::after {
  content: none !important;
  background: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* テーマ既定の management_logo 画像が出る場合の保険（.logo-mark / .logo-text 以外の img は隠す） */
#header .logo a > img:not(.logo-mark):not(.logo-text) {
  display: none;
}

/* マーク <img> をPC基準サイズで表示 */
#header .logo a .logo-mark {
  display: inline-block;
  width: min(calc(42 / var(--design-pc) * 100vw), 42px);
  height: min(calc(42 / var(--design-pc) * 100vw), 42px);
  flex-shrink: 0;
}

/* h1ラッパー：font-size:0 を解除しつつ、PC基準サイズで指定 */
#header .logo a .h1 {
  font-size: 0;
  line-height: 1;
  color: inherit;
  position: static;
  display: inline-flex;
  align-items: center;
  width: min(calc(230.95 / var(--design-pc) * 100vw), 230.95px);
  height: min(calc(25.57 / var(--design-pc) * 100vw), 25.57px);
  margin: 0;
  flex-shrink: 0;
}

/* h1内部のロゴ本体（インラインSVG または <img class="logo-text">）を親に追従 */
#header .logo a .h1 > svg,
#header .logo a .h1 .logo-text {
  display: block;
  width: 100%;
  height: 100%;
  flex-shrink: 0;
}

/* ---------- SP・タブレット（〜1279px） ---------- */
@media screen and (max-width: 1279px) {
  #header .logo a .logo-mark {
    width: 29px;
    height: 29px;
  }
  #header .logo a .h1 {
    width: 157.94px;
    height: 17.65px;
  }
}

/* ---------- SP（〜575px：サテライトページ基準に統一） ---------- */
@media screen and (max-width: 575px) {
  #header .logo a .logo-mark {
    width: 29px;
    height: 29px;
  }
  #header .logo a .h1 {
    width: 157.94px;
    height: 17.65px;
    max-width: calc(100vw - calc(126 / var(--design-sp) * 100vw));
  }
}

/* ---------- SP（〜390px：サテライトページ基準に統一） ---------- */
@media screen and (max-width: 390px) {
  #header .logo a .h1 {
    width: 157.94px;
  }
}

/* ==========================================================================
   PCヘッダー固定UI：バーガーボタン高を基準にロゴ/ナビを中央揃え
   ========================================================================== */
@media screen and (min-width: 1280px) {
  :root {
    --ga-header-ui-top: 30px;
    --ga-header-ui-side: 30px;
    --ga-header-ui-height: 46px;
    --ga-header-radius: min(calc(5 / var(--design-pc) * 100vw), 5px);
    --ga-header-nav-font: clamp(14px, calc(15 / var(--design-pc) * 100vw), 15px);
    --ga-header-nav-line: clamp(14px, calc(16 / var(--design-pc) * 100vw), 16px);
    --ga-header-burger-line-w: min(calc(18 / var(--design-pc) * 100vw), 18px);
    --ga-header-burger-line-h: 2px;
  }

  #header .container {
    padding-top: var(--ga-header-ui-top);
    padding-right: var(--ga-header-ui-side);
    padding-bottom: 0;
    padding-left: var(--ga-header-ui-side);
  }

  #header .logo a {
    height: var(--ga-header-ui-height);
    align-items: center;
  }

  #global_nav_pc {
    top: var(--ga-header-ui-top) !important;
    right: var(--ga-header-ui-side) !important;
  }

  #global_nav_pc .global_nav,
  #global_nav_pc .global_nav_list,
  #global_nav_pc .global_nav_list li,
  #global_nav_pc .global_nav_list li a {
    height: var(--ga-header-ui-height);
    min-height: var(--ga-header-ui-height);
  }

  #global_nav_pc .global_nav_list {
    --ga-nav-contact-width: min(calc(126 / var(--design-pc) * 100vw), 126px);
    --ga-nav-contact-gap: min(calc(39.58 / var(--design-pc) * 100vw), 39.58px);
    --ga-nav-frame-contact-gap: min(calc(15 / var(--design-pc) * 100vw), 15px);
    --ga-nav-bg-tail: min(calc(30 / var(--design-pc) * 100vw), 30px);
    --ga-nav-panel-left: calc(-1 * min(calc(1 / var(--design-pc) * 100vw), 1px));
    padding-left: min(calc(12 / var(--design-pc) * 100vw), 12px);
  }

  #global_nav_pc .global_nav_list::before {
    left: var(--ga-nav-panel-left);
    right: calc(var(--ga-nav-contact-width) + var(--ga-nav-frame-contact-gap));
    width: auto;
    height: var(--ga-header-ui-height);
    border-radius: var(--ga-header-radius);
  }

  #global_nav_pc .global_nav_list li:nth-child(2) {
    margin-left: min(calc(30 / var(--design-pc) * 100vw), 30px);
  }

  #global_nav_pc .global_nav_list li:nth-child(3) {
    margin-left: min(calc(30 / var(--design-pc) * 100vw), 30px);
  }

  #global_nav_pc .global_nav_list li:nth-child(4) {
    margin-left: min(calc(30 / var(--design-pc) * 100vw), 30px);
  }

  #global_nav_pc .global_nav_list li:nth-child(5) {
    margin-left: min(calc(30 / var(--design-pc) * 100vw), 30px);
  }

  #global_nav_pc .global_nav_list li a {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--ga-header-nav-font);
    line-height: var(--ga-header-nav-line);
    letter-spacing: 0;
  }

  #global_nav_pc .global_nav_list > li:not(:last-child) > a::before {
    top: min(calc(2 / var(--design-pc) * 100vw), 2px);
    right: calc(-1 * min(calc(19 / var(--design-pc) * 100vw), 19px));
    bottom: min(calc(2 / var(--design-pc) * 100vw), 2px);
    left: calc(-1 * min(calc(19 / var(--design-pc) * 100vw), 19px));
    border-radius: var(--ga-header-radius);
  }

  #global_nav_pc .global_nav_list > li:first-child > a::before {
    right: calc(-1 * min(calc(7 / var(--design-pc) * 100vw), 7px));
    left: calc(-1 * min(calc(10 / var(--design-pc) * 100vw), 10px));
  }

  #global_nav_pc .global_nav_list > li:nth-last-child(2) > a::before {
    right: calc(-1 * min(calc(28 / var(--design-pc) * 100vw), 28px));
    left: calc(-1 * min(calc(28 / var(--design-pc) * 100vw), 28px));
  }

  #global_nav_pc .global_nav_list li:last-child a,
  #global_nav_pc .container:not(.relative)::after {
    border-radius: var(--ga-header-radius);
  }

  #global_nav_pc .global_nav_list li:last-child a {
    height: var(--ga-header-ui-height);
    min-height: var(--ga-header-ui-height);
    line-height: var(--ga-header-nav-line);
  }

  #global_nav_pc .container:not(.relative)::after {
    width: var(--ga-header-ui-height);
    height: var(--ga-header-ui-height);
    margin-left: min(calc(15 / var(--design-pc) * 100vw), 15px);
    background-size:
      var(--ga-header-burger-line-w) var(--ga-header-burger-line-h),
      var(--ga-header-burger-line-w) var(--ga-header-burger-line-h),
      var(--ga-header-burger-line-w) var(--ga-header-burger-line-h);
    background-position:
      15px 17px,
      15px 23px,
      15px 29px;
  }

  .ga-burger-trigger {
    width: var(--ga-header-ui-height) !important;
    height: var(--ga-header-ui-height) !important;
    min-width: var(--ga-header-ui-height) !important;
    min-height: var(--ga-header-ui-height) !important;
    border-radius: var(--ga-header-radius) !important;
  }

  .ga-burger-trigger--pc {
    flex: 0 0 var(--ga-header-ui-height) !important;
    margin-left: min(calc(15 / var(--design-pc) * 100vw), 15px) !important;
  }

  body.is-ga-burger-open .ga-burger-menu .ga-burger-menu__close,
  .ga-burger-menu__close {
    top: var(--ga-header-ui-top) !important;
    right: var(--ga-header-ui-side) !important;
    width: var(--ga-header-ui-height) !important;
    height: var(--ga-header-ui-height) !important;
    min-width: var(--ga-header-ui-height) !important;
    min-height: var(--ga-header-ui-height) !important;
    border-radius: var(--ga-header-radius) !important;
  }

  .ga-burger-menu__close::before {
    width: 24px !important;
    height: 2px !important;
  }

  .ga-burger-trigger span {
    width: var(--ga-header-burger-line-w) !important;
    height: var(--ga-header-burger-line-h) !important;
  }

  .ga-burger-trigger span:nth-child(1) {
    transform: translateY(-6px) !important;
  }

  .ga-burger-trigger span:nth-child(2) {
    transform: translateY(0) !important;
  }

  .ga-burger-trigger span:nth-child(3) {
    transform: translateY(6px) !important;
  }

  .pc .ga-burger-trigger:hover span:nth-child(1),
  .ga-burger-trigger.is-ga-burger-clicking span:nth-child(1) {
    transform: translate(0, -6px) scaleX(1) !important;
  }

  .pc .ga-burger-trigger:hover span:nth-child(2),
  .ga-burger-trigger.is-ga-burger-clicking span:nth-child(2) {
    transform: translate(0, 0) scaleX(0.7778) !important;
  }

  .pc .ga-burger-trigger:hover span:nth-child(3),
  .ga-burger-trigger.is-ga-burger-clicking span:nth-child(3) {
    transform: translate(0, 6px) scaleX(0.5556) !important;
  }
}

/* ============================================
   トップページ：.container の左右padding(5%)を解除
   ----------------------------------------------
   FV含む全幅セクション（.ga-hero / .ga-services /
   .ga-numbers 等）は「width:100vw + margin-left:-50vw」
   で親の幅制限を突き破る設計だが、親 .container に
   padding:0 5% が入っているため、ブラウザを125%以上に
   拡大すると 5% padding が拡大されて左右に白帯が出る。
   .fornt_container は front-page.php にのみ付くクラスで、
   トップページ専用のため下層ページには影響しない。
   ============================================ */
.container.fornt_container {
  padding: 0;
}

/* ===== Footer ratio patch ===== */
@media screen and (min-width: 1280px) {
  #footer.ga-footer {
    container-type: inline-size;
    min-height: min(calc(939 / var(--design-pc) * 100vw), 1252px);
  }

  #footer.ga-footer .ga-footer__inner {
    width: min(100%, 1920px);
    max-width: 1920px;
    min-height: min(calc(939 / var(--design-pc) * 100vw), 1252px);
    padding: min(calc(81 / var(--design-pc) * 100vw), 108px) min(calc(20 / var(--design-pc) * 100vw), 26.667px) min(calc(28 / var(--design-pc) * 100vw), 37.333px);
    container-type: inline-size;
  }

  #footer.ga-footer .ga-footer__top {
    gap: min(calc(64 / var(--design-pc) * 100vw), 85.333px);
    padding: 0 min(calc(60 / var(--design-pc) * 100vw), 80px) 0 min(calc(48 / var(--design-pc) * 100vw), 64px);
  }

  #footer.ga-footer .ga-footer__catch {
    font-size: calc(50.5 / var(--design-pc) * 100cqw);
    line-height: calc(68 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__nav {
    grid-template-columns:
      min(calc(126 / var(--design-pc) * 100vw), 168px)
      min(calc(264 / var(--design-pc) * 100vw), 352px)
      min(calc(208 / var(--design-pc) * 100vw), 277.333px);
    column-gap: min(calc(70 / var(--design-pc) * 100vw), 93.333px);
    row-gap: min(calc(30 / var(--design-pc) * 100vw), 40px);
    width: min(calc(738 / var(--design-pc) * 100vw), 984px);
    padding-top: min(calc(18 / var(--design-pc) * 100vw), 24px);
  }

  #footer.ga-footer .ga-footer__nav-heading--support {
    margin-top: min(calc(25 / var(--design-pc) * 100vw), 33.333px);
  }

  #footer.ga-footer .ga-footer__nav-group--about {
    line-height: 0;
  }

  #footer.ga-footer .ga-footer__nav-group--about a.ga-footer__nav-heading {
    display: block;
    white-space: nowrap;
  }

  #footer.ga-footer .ga-footer__nav-group--personal .ga-footer__nav-heading,
  #footer.ga-footer .ga-footer__nav-group--corporate .ga-footer__nav-heading {
    white-space: nowrap;
  }

  #footer.ga-footer .ga-footer__nav-heading,
  #footer.ga-footer .ga-footer__nav-list--primary a {
    font-size: max(14px, min(calc(18 / var(--design-pc) * 100vw), 24px));
    line-height: max(14px, min(calc(16 / var(--design-pc) * 100vw), 21.333px));
  }

  .pc #footer.ga-footer .ga-footer__nav-heading + .ga-footer__nav-list {
    padding-top: min(calc(20 / var(--design-pc) * 100vw), 26.667px);
  }

  #footer.ga-footer .ga-footer__nav-group--about .ga-footer__nav-list a,
  #footer.ga-footer .ga-footer__nav-group--personal .ga-footer__nav-list a,
  #footer.ga-footer .ga-footer__nav-group--corporate .ga-footer__nav-list a {
    display: inline-flex;
    align-items: center;
  }

  #footer.ga-footer .ga-footer__nav-group--about .ga-footer__nav-list a::before,
  #footer.ga-footer .ga-footer__nav-group--personal .ga-footer__nav-list a::before,
  #footer.ga-footer .ga-footer__nav-group--corporate .ga-footer__nav-list a::before {
    content: "";
    display: inline-block;
    flex: 0 0 min(calc(10.5 / var(--design-pc) * 100vw), 14px);
    width: min(calc(10.5 / var(--design-pc) * 100vw), 14px);
    height: 1px;
    margin-right: min(calc(6.5 / var(--design-pc) * 100vw), 8.667px);
    background: currentColor;
  }

  .pc #footer.ga-footer .ga-footer__nav-list > li + li {
    margin-top: min(calc(15 / var(--design-pc) * 100vw), 20px);
  }

  .pc #footer.ga-footer .ga-footer__nav-list--primary > li + li {
    margin-top: 0;
  }

  .pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(2) {
    margin-top: min(calc(22 / var(--design-pc) * 100vw), 29.333px);
  }

  .pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(3) {
    margin-top: min(calc(24 / var(--design-pc) * 100vw), 32px);
  }

  .pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(4) {
    margin-top: min(calc(23 / var(--design-pc) * 100vw), 30.667px);
  }

  .pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(5),
  .pc #footer.ga-footer .ga-footer__nav-list--primary > li:nth-child(6) {
    margin-top: min(calc(25 / var(--design-pc) * 100vw), 33.333px);
  }

  #footer.ga-footer .ga-footer__nav-list a {
    font-size: max(14px, min(calc(15 / var(--design-pc) * 100vw), 20px));
    line-height: max(14px, min(calc(16 / var(--design-pc) * 100vw), 21.333px));
  }

  #footer.ga-footer .ga-footer__company {
    container-type: normal;
    width: calc(1400 / var(--design-pc) * 100cqw);
    height: calc(72 / var(--design-pc) * 100cqw);
    min-height: calc(72 / var(--design-pc) * 100cqw);
    margin-top: calc(80 / var(--design-pc) * 100cqw);
    padding: 0 calc(52 / var(--design-pc) * 100cqw);
    border-radius: calc(10 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__company.is-expanded {
    height: calc(260 / var(--design-pc) * 100cqw);
    min-height: calc(260 / var(--design-pc) * 100cqw);
    padding: calc(43 / var(--design-pc) * 100cqw) calc(52 / var(--design-pc) * 100cqw) calc(28 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__company::before,
  #footer.ga-footer .ga-footer__company::after {
    width: calc(142.699 / var(--design-pc) * 100cqw);
    height: calc(541.622 / var(--design-pc) * 100cqw);
    border-width: calc(10 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__company::before {
    left: calc(950 / var(--design-pc) * 100cqw);
    top: calc(-8 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__company::after {
    right: calc(290 / var(--design-pc) * 100cqw);
    top: calc(-128 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__brand {
    gap: calc(10 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__brand-mark {
    width: calc(36 / var(--design-pc) * 100cqw);
    height: calc(36 / var(--design-pc) * 100cqw);
    flex-basis: calc(36 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__brand-text {
    width: calc(196.435 / var(--design-pc) * 100cqw);
    height: calc(21.913 / var(--design-pc) * 100cqw);
    max-width: calc(100% - calc(46 / var(--design-pc) * 100cqw));
    font-size: 0;
    line-height: 0;
  }

  #footer.ga-footer .ga-footer__company-name {
    margin-top: calc(26 / var(--design-pc) * 100cqw) !important;
    font-size: max(14px, calc(15 / var(--design-pc) * 100cqw));
    line-height: max(18px, calc(18 / var(--design-pc) * 100cqw));
  }

  #footer.ga-footer .ga-footer__address {
    margin-top: calc(13 / var(--design-pc) * 100cqw) !important;
    font-size: max(14px, calc(15 / var(--design-pc) * 100cqw));
    line-height: max(18px, calc(18 / var(--design-pc) * 100cqw));
  }

  #footer.ga-footer .ga-footer__to-top {
    top: calc(14 / var(--design-pc) * 100cqw);
    right: calc(14 / var(--design-pc) * 100cqw);
    width: calc(56 / var(--design-pc) * 100cqw);
    height: calc(56 / var(--design-pc) * 100cqw);
    border-radius: calc(10 / var(--design-pc) * 100cqw);
  }

  .pc #footer.ga-footer .ga-footer__to-top:hover,
  .pc #footer.ga-footer .ga-footer__to-top:focus-visible {
    width: calc(84 / var(--design-pc) * 100cqw);
    height: calc(84 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__bottom {
    right: calc(40 / var(--design-pc) * 100cqw);
    bottom: calc(28 / var(--design-pc) * 100cqw);
    gap: calc(38 / var(--design-pc) * 100cqw);
  }
}

/* ===== CONTACT / Footer: tablet 768-1279px ===== */
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .ga-contact {
    container-type: inline-size;
  }

  .ga-contact__inner {
    width: 100%;
    max-width: none;
    height: clamp(280px, calc(249.333px + 3.993056vw), 300.444px);
  }

  .ga-contact__label {
    left: clamp(40px, calc(-6.667px + 6.076389vw), 71.111px);
    top: clamp(78px, calc(60.333px + 2.300347vw), 89.778px);
    gap: 3.25px;
    font-size: 15px;
    line-height: 1;
  }

  .ga-contact__mark {
    width: clamp(14.889px, calc(19.542px - 0.363715vw), 16.75px);
    height: clamp(14.889px, calc(19.542px - 0.363715vw), 16.75px);
    flex-basis: clamp(14.889px, calc(19.542px - 0.363715vw), 16.75px);
  }

  .ga-contact__title {
    left: clamp(38px, calc(-9px + 6.119792vw), 69.333px);
    top: clamp(124px, calc(100.667px + 3.038194vw), 139.556px);
    font-size: clamp(58px, calc(51.667px + 0.824653vw), 62.222px);
    line-height: clamp(58px, calc(57px + 0.130208vw), 58.667px);
  }

  .ga-contact__arrow {
    top: clamp(120px, calc(101.333px + 2.430556vw), 132.444px);
    right: clamp(40px, calc(-4px + 5.729167vw), 69.333px);
    width: clamp(35.556px, calc(46.667px - 0.868056vw), 40px);
    height: clamp(35.556px, calc(46.667px - 0.868056vw), 40px);
    border-radius: 5px;
  }

  .ga-contact__arrow-icon {
    width: 100%;
    height: 100%;
  }

  #footer.ga-footer {
    container-type: inline-size;
    min-height: clamp(540px, 65.208333vw, 834px);
    background-position: center;
  }

  #footer.ga-footer .ga-footer__inner {
    width: 100%;
    max-width: none;
    min-height: clamp(540px, 65.208333vw, 834px);
    padding:
      clamp(48px, 5.625vw, 71.944px)
      clamp(17.778px, calc(23.333px - 0.434028vw), 20px)
      clamp(25px, calc(162.667px - 10.763889vw), 80px);
    container-type: inline-size;
  }

  #footer.ga-footer .ga-footer__top {
    display: flex;
    justify-content: space-between;
    gap: clamp(20px, calc(-33.333px + 6.944444vw), 55.556px);
    padding:
      0
      clamp(0px, calc(-74.667px + 9.722222vw), 49.778px)
      0
      clamp(0px, calc(-64px + 8.333333vw), 42.667px);
  }

  #footer.ga-footer .ga-footer__catch {
    flex: 0 0 auto;
    font-size: clamp(32px, calc(50.5 / var(--design-pc) * 100cqw), 44.861px);
    line-height: clamp(43px, calc(68 / var(--design-pc) * 100cqw), 60.397px);
  }

  #footer.ga-footer .ga-footer__nav {
    display: grid;
    grid-template-columns:
      minmax(100px, 0.85fr)
      minmax(180px, 1.45fr)
      minmax(150px, 1fr);
    grid-template-rows: auto auto;
    column-gap: clamp(16px, calc(44 / var(--design-pc) * 100cqw), 39.08px);
    row-gap: calc(40 / var(--design-pc) * 100cqw);
    width: clamp(475px, calc(720 / var(--design-pc) * 100cqw), 621.7px);
    margin-top: 0;
    padding-top: calc(18 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__nav-group--about {
    grid-column: 1;
    grid-row: 1;
  }

  #footer.ga-footer .ga-footer__nav-group--personal {
    grid-column: 2;
    grid-row: 1;
  }

  #footer.ga-footer .ga-footer__nav-group--corporate {
    grid-column: 2;
    grid-row: 2;
  }

  #footer.ga-footer .ga-footer__nav-group--links {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  #footer.ga-footer .ga-footer__nav-heading,
  #footer.ga-footer .ga-footer__nav-list--primary a {
    font-size: clamp(15px, calc(18 / var(--design-pc) * 100cqw), 15.988px);
    line-height: 16px;
  }

  #footer.ga-footer .ga-footer__nav-heading + .ga-footer__nav-list {
    padding-top: calc(30 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__nav-list {
    gap: calc(15 / var(--design-pc) * 100cqw);
    padding-top: 0;
  }

  #footer.ga-footer .ga-footer__nav-list a {
    font-size: 15px;
    line-height: 16px;
  }

  #footer.ga-footer .ga-footer__company {
    container-type: normal;
    width: calc(1400 / var(--design-pc) * 100cqw);
    height: clamp(48px, calc(72 / var(--design-pc) * 100cqw), 63.95px);
    min-height: clamp(48px, calc(72 / var(--design-pc) * 100cqw), 63.95px);
    margin-top: clamp(56px, calc(80 / var(--design-pc) * 100cqw), 71.056px);
    padding: 0 calc(52 / var(--design-pc) * 100cqw);
    border-radius: calc(10 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__company.is-expanded {
    height: clamp(180px, calc(260 / var(--design-pc) * 100cqw), 230.931px);
    min-height: clamp(180px, calc(260 / var(--design-pc) * 100cqw), 230.931px);
    padding:
      clamp(24px, calc(43 / var(--design-pc) * 100cqw), 38.191px)
      calc(52 / var(--design-pc) * 100cqw)
      clamp(20px, calc(28 / var(--design-pc) * 100cqw), 24.869px);
  }

  #footer.ga-footer .ga-footer__company::before,
  #footer.ga-footer .ga-footer__company::after {
    width: calc(142.699 / var(--design-pc) * 100cqw);
    height: calc(541.622 / var(--design-pc) * 100cqw);
    border-width: calc(10 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__company::before {
    left: calc(950 / var(--design-pc) * 100cqw);
    top: calc(-8 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__company::after {
    right: calc(290 / var(--design-pc) * 100cqw);
    top: calc(-128 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__brand,
  #footer.ga-footer .ga-footer__company-name,
  #footer.ga-footer .ga-footer__address,
  #footer.ga-footer .ga-footer__bottom {
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
  }

  #footer.ga-footer .ga-footer__company.is-expanded .ga-footer__brand,
  #footer.ga-footer .ga-footer__company.is-expanded .ga-footer__company-name,
  #footer.ga-footer .ga-footer__company.is-expanded .ga-footer__address,
  #footer.ga-footer .ga-footer__company.is-expanded .ga-footer__bottom {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  #footer.ga-footer .ga-footer__brand-mark {
    width: clamp(30px, calc(36 / var(--design-pc) * 100cqw), 31.975px);
    height: clamp(30px, calc(36 / var(--design-pc) * 100cqw), 31.975px);
    flex-basis: clamp(30px, calc(36 / var(--design-pc) * 100cqw), 31.975px);
  }

  #footer.ga-footer .ga-footer__brand {
    gap: clamp(8px, calc(10 / var(--design-pc) * 100cqw), 8.882px);
  }

  #footer.ga-footer .ga-footer__brand-text {
    width: clamp(130px, calc(196.435 / var(--design-pc) * 100cqw), 174.442px);
    height: auto;
    aspect-ratio: 196.435 / 21.913;
    font-size: 0;
    line-height: 0;
  }

  #footer.ga-footer .ga-footer__company-name,
  #footer.ga-footer .ga-footer__address {
    font-size: 15px;
    line-height: 18px;
  }

  #footer.ga-footer .ga-footer__company-name {
    margin-top: clamp(15px, calc(26 / var(--design-pc) * 100cqw), 23.093px) !important;
  }

  #footer.ga-footer .ga-footer__address {
    margin-top: clamp(8px, calc(13 / var(--design-pc) * 100cqw), 11.547px) !important;
  }

  #footer.ga-footer .ga-footer__to-top {
    top: calc(14 / var(--design-pc) * 100cqw);
    right: calc(14 / var(--design-pc) * 100cqw);
    width: clamp(42px, calc(56 / var(--design-pc) * 100cqw), 49.739px);
    height: clamp(42px, calc(56 / var(--design-pc) * 100cqw), 49.739px);
    border-radius: calc(10 / var(--design-pc) * 100cqw);
  }

  #footer.ga-footer .ga-footer__bottom {
    left: auto;
    right: calc(40 / var(--design-pc) * 100cqw);
    bottom: calc(28 / var(--design-pc) * 100cqw);
    display: flex;
    justify-content: flex-start;
    gap: calc(38 / var(--design-pc) * 100cqw);
  }
}

@media screen and (max-width: 575px) {
  #footer.ga-footer {
    container-type: inline-size;
  }

  #footer.ga-footer .ga-footer__inner {
    padding: calc(52 / var(--design-sp) * 100cqw) calc(20 / var(--design-sp) * 100cqw) 0 !important;
  }

  #footer.ga-footer .ga-footer__catch {
    font-size: calc(30 / var(--design-sp) * 100cqw) !important;
    line-height: calc(43 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__nav {
    margin-top: calc(48 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__nav-heading,
  #footer.ga-footer .ga-footer__nav-list--primary a {
    font-size: max(14px, calc(16 / var(--design-sp) * 100cqw)) !important;
    line-height: max(14px, calc(16 / var(--design-sp) * 100cqw)) !important;
  }

  #footer.ga-footer .ga-footer__nav-heading + .ga-footer__nav-list {
    padding-top: calc(20 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__nav-list {
    gap: calc(15 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__nav-list a,
  #footer.ga-footer .ga-footer__nav-group--personal .ga-footer__nav-list a,
  #footer.ga-footer .ga-footer__nav-group--corporate .ga-footer__nav-list a {
    font-size: 14px !important;
    line-height: 14px !important;
  }

  #footer.ga-footer .ga-footer__nav-list--primary {
    gap: calc(30 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__company {
    container-type: normal !important;
    width: 100cqw !important;
    height: calc(224 / var(--design-sp) * 100cqw) !important;
    min-height: calc(224 / var(--design-sp) * 100cqw) !important;
    margin: calc(116 / var(--design-sp) * 100cqw) calc(50% - 50cqw) 0 !important;
    border-radius: calc(10 / var(--design-sp) * 100cqw) calc(10 / var(--design-sp) * 100cqw) 0 0 !important;
  }

  #footer.ga-footer .ga-footer__company.is-expanded {
    height: calc(224 / var(--design-sp) * 100cqw) !important;
    min-height: calc(274 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__brand {
    left: calc(20 / var(--design-sp) * 100cqw) !important;
    top: calc(30 / var(--design-sp) * 100cqw) !important;
    gap: calc(8.43 / var(--design-sp) * 100cqw) !important;
    max-width: calc(100% - calc(116 / var(--design-sp) * 100cqw)) !important;
  }

  #footer.ga-footer .ga-footer__brand-mark {
    width: calc(40.982 / var(--design-sp) * 100cqw) !important;
    height: calc(41.014 / var(--design-sp) * 100cqw) !important;
    flex-basis: calc(40.982 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__brand-text {
    width: calc(223.577 / var(--design-sp) * 100cqw) !important;
    height: calc(24.963 / var(--design-sp) * 100cqw) !important;
    max-width: calc(100cqw - calc(152 / var(--design-sp) * 100cqw)) !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    background: url("assets/images/common/logo-text.svg") left center / contain no-repeat !important;
    filter: brightness(0) invert(1) !important;
  }

  #footer.ga-footer .ga-footer__company-name {
    left: calc(20 / var(--design-sp) * 100cqw) !important;
    top: calc(83 / var(--design-sp) * 100cqw) !important;
    font-size: max(14px, calc(15 / var(--design-sp) * 100cqw)) !important;
    line-height: calc(28 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__address {
    left: calc(20 / var(--design-sp) * 100cqw) !important;
    top: calc(113 / var(--design-sp) * 100cqw) !important;
    font-size: max(14px, calc(15 / var(--design-sp) * 100cqw)) !important;
    line-height: calc(28 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__to-top {
    top: calc(10 / var(--design-sp) * 100cqw) !important;
    right: calc(10 / var(--design-sp) * 100cqw) !important;
    width: calc(44 / var(--design-sp) * 100cqw) !important;
    height: calc(44 / var(--design-sp) * 100cqw) !important;
    border-radius: calc(10 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__bottom {
    left: calc(23 / var(--design-sp) * 100cqw) !important;
    bottom: calc(80 / var(--design-sp) * 100cqw) !important;
    gap: calc(29 / var(--design-sp) * 100cqw) !important;
  }

  #footer.ga-footer .ga-footer__bottom a,
  #footer.ga-footer .ga-footer__bottom small {
    font-size: 12px !important;
  }
}
/* FV loader first-paint guard: hide the FV media before loading.js starts. */
html:not(.is-ga-loading-done) .ga-hero__media,
html:not(.is-ga-loading-done) .ga-hero__overlay {
  clip-path: inset(0 100% 0 0) !important;
  -webkit-clip-path: inset(0 100% 0 0) !important;
}

body.home:not(.is-ga-loading-done):not(.is-ga-loading-revealing)::before,
body.front-page:not(.is-ga-loading-done):not(.is-ga-loading-revealing)::before,
body.page-template-front-page:not(.is-ga-loading-done):not(.is-ga-loading-revealing)::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 99998;
  background: #fff;
  pointer-events: none;
}

@supports selector(body:has(.ga-hero)) {
  body:has(.ga-hero):not(.is-ga-loading-done):not(.is-ga-loading-revealing)::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: #fff;
    pointer-events: none;
  }
}

/* ==========================================================================
   PC global navigation: Figma megamenu
   ========================================================================== */
@media screen and (min-width: 1280px) {
  #global_nav_pc .global_nav_list > .ga-nav-about,
  #global_nav_pc .global_nav_list > .ga-nav-business {
    position: static;
  }

  #global_nav_pc .global_nav_list > .ga-nav-about > .gnav_child,
  #global_nav_pc .global_nav_list > .ga-nav-business > .gnav_child {
    position: absolute;
    top: calc(100% + min(calc(3 / var(--design-pc) * 100vw), 0px));
    left: var(--ga-nav-panel-left);
    width: clamp(444px, calc(477 / var(--design-pc) * 100vw), 477px);
    padding: 0;
    background: transparent;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: none;
    transition: none;
    padding-top: 3px;
  }

  #global_nav_pc .global_nav_list > .ga-nav-about:hover > .gnav_child,
  #global_nav_pc .global_nav_list > .ga-nav-about:focus-within > .gnav_child,
  #global_nav_pc .global_nav_list > .ga-nav-business:hover > .gnav_child,
  #global_nav_pc .global_nav_list > .ga-nav-business:focus-within > .gnav_child {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 12011;
    transform: none;
  }

  #global_nav_pc .global_nav_list > .ga-nav-about > .gnav_child > .container,
  #global_nav_pc .global_nav_list > .ga-nav-business > .gnav_child > .container {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: min(calc(19 / var(--design-pc) * 100vw), 19px);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--ga-header-radius);
    background: rgba(0, 0, 0, 0.7);
    box-shadow: none;
    box-sizing: border-box;
  }

  #global_nav_pc .global_nav_list > .ga-nav-about > .gnav_child > .container {
    height: clamp(88px, calc(98 / var(--design-pc) * 100vw), 98px);
  }

  #global_nav_pc .global_nav_list > .ga-nav-business > .gnav_child > .container {
    height: clamp(120px, calc(136 / var(--design-pc) * 100vw), 136px);
  }

  #global_nav_pc .global_nav_list > .ga-nav-about > .gnav_child > .container::after,
  #global_nav_pc .global_nav_list > .ga-nav-business > .gnav_child > .container::after {
    content: none;
    display: none;
  }

  #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu,
  #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu,
  #global_nav_pc .global_nav_list > .ga-nav-business .gnav_child__corporate {
    display: grid;
    grid-template-columns:
      clamp(191px, calc(202 / var(--design-pc) * 100vw), 202px)
      minmax(0, 1fr);
    column-gap: min(calc(30 / var(--design-pc) * 100vw), 30px);
    width: 100%;
    margin: 0;
    padding: 0;
  }

  #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu {
    grid-template-columns:
      clamp(177px, calc(188 / var(--design-pc) * 100vw), 188px)
      minmax(0, 1fr);
  }

  #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu {
    margin-top: min(calc(10 / var(--design-pc) * 100vw), 10px);
  }

  #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu > li,
  #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu > li,
  #global_nav_pc .global_nav_list > .ga-nav-business .gnav_child__corporate > li {
    width: 100%;
    height: min(calc(58 / var(--design-pc) * 100vw), 58px);
    min-height: 0;
    margin: 0;
    padding: 0;
  }

  #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu > li > a,
  #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu > li > a,
  #global_nav_pc .global_nav_list > .ga-nav-business .gnav_child__corporate > li > span {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: min(calc(12 / var(--design-pc) * 100vw), 12px);
    width: 100%;
    height: min(calc(58 / var(--design-pc) * 100vw), 58px);
    min-height: 0;
    padding: 0 min(calc(12 / var(--design-pc) * 100vw), 12px) 0 0;
    border: 0;
    border-radius: min(calc(4.143 / var(--design-pc) * 100vw), 4.143px);
    background: transparent;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 14px;
    white-space: nowrap;
    box-sizing: border-box;
    transition: none;
  }

  #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu > li > a::before,
  #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu > li > a::before {
    content: "";
    position: relative;
    top: auto;
    left: auto;
    flex: 0 0 min(calc(80 / var(--design-pc) * 100vw), 80px);
    width: min(calc(80 / var(--design-pc) * 100vw), 80px);
    height: min(calc(58 / var(--design-pc) * 100vw), 58px);
    border-radius: min(calc(4.143 / var(--design-pc) * 100vw), 4.143px);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    transform: none;
  }

  #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu > li:nth-child(1) > a::before {
    background-image: url("assets/images/common/gnav-about-reason.png");
  }

  #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu > li:nth-child(2) > a::before {
    background-image: url("assets/images/common/gnav-about-message.png");
  }

  #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu > li:nth-child(1) > a::before {
    background-image: url("assets/images/common/gnav-service-solar.png");
  }

  #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu > li:nth-child(2) > a::before {
    background-image: url("assets/images/common/gnav-service-reform.png");
  }

  #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu > li > a::after,
  #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu > li > a::after {
    content: none;
    display: none;
  }

  .pc #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu > li > a:hover,
  .pc #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu > li > a:focus-visible,
  .pc #global_nav_pc .global_nav_list > .ga-nav-about .sub-menu > .current-menu-item > a,
  .pc #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu > li > a:hover,
  .pc #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu > li > a:focus-visible,
  .pc #global_nav_pc .global_nav_list > .ga-nav-business .sub-menu > .current-menu-item > a {
    background: #15b9f5;
    color: #fff;
  }

  #global_nav_pc .global_nav_list > .ga-nav-business .gnav_child__heading {
    margin: 0 0 0 calc(-1 * min(calc(2 / var(--design-pc) * 100vw), 2px));
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: clamp(14px, calc(15 / var(--design-pc) * 100vw), 15px);
    font-weight: 700;
    line-height: clamp(14px, calc(15 / var(--design-pc) * 100vw), 15px);
    letter-spacing: 0;
  }

  #global_nav_pc .global_nav_list > .ga-nav-business .gnav_child__divider {
    width: 100%;
    height: 1px;
    margin-top: min(calc(20 / var(--design-pc) * 100vw), 20px);
    background: rgba(255, 255, 255, 0.45);
  }

  #global_nav_pc .global_nav_list > .ga-nav-business .gnav_child__heading--corporate {
    margin-top: min(calc(14 / var(--design-pc) * 100vw), 14px);
  }

  #global_nav_pc .global_nav_list > .ga-nav-business .gnav_child__corporate {
    grid-template-columns:
      clamp(207px, calc(217 / var(--design-pc) * 100vw), 217px)
      minmax(0, 1fr);
    column-gap: min(calc(17 / var(--design-pc) * 100vw), 17px);
    margin-top: min(calc(10 / var(--design-pc) * 100vw), 10px);
  }

  #global_nav_pc .global_nav_list > .ga-nav-business .gnav_child__corporate > li > span {
    gap: min(calc(11 / var(--design-pc) * 100vw), 11px);
    padding-right: 0;
  }

  #global_nav_pc .global_nav_list > .ga-nav-business .gnav_child__placeholder {
    flex: 0 0 min(calc(80 / var(--design-pc) * 100vw), 80px);
    width: min(calc(80 / var(--design-pc) * 100vw), 80px);
    height: min(calc(58 / var(--design-pc) * 100vw), 58px);
    border-radius: min(calc(4.143 / var(--design-pc) * 100vw), 4.143px);
    background: #d9d9d9;
  }
}

/* ========================================================================== 
   Promo Banners: completed-image implementation
   Text and photographs are contained in the source images so that the
   composition remains stable at every viewport width.
   ========================================================================== */
.ga-promo-banners__card--electric,
.ga-promo-banners__card--paint {
  aspect-ratio: 443 / 179;
  background: none;
}

.ga-promo-banners__card--paint::before {
  content: none;
}

.ga-promo-banners__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Tablet: keep both completed banners visible in one balanced row. */
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .ga-promo-banners {
    padding-bottom: clamp(56px, 5.555556vw, 71px);
  }

  .ga-promo-banners__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 2.637vw, 27px);
    width: min(calc(100% - 40px), 913px);
    max-width: 913px;
  }
}

/* Mobile / Tablet: keep the colored card treatment above the narrow SP range. */
@media screen and (min-width: 576px) and (max-width: 1279px) {
  .ga-entry-links__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(20px, 2.637vw, 27px);
    width: min(calc(100% - 40px), 720px);
    max-width: 720px;
  }

  .ga-entry-links__card {
    height: clamp(260px, 31.28vw, 320px);
    min-height: 0;
    border: 1px solid #31807e;
    border-radius: 10px;
    background: #31807e;
    color: #fff;
  }

  .ga-entry-links__card::before {
    inset: 0;
    border-color: #31807e;
    background: #31807e;
  }

  .ga-entry-links__card--recruit {
    border-color: #31804f;
    background: #31804f;
  }

  .ga-entry-links__card--recruit::before {
    border-color: #31804f;
    background: #31804f;
  }

  .ga-entry-links__body,
  .ga-entry-links__card--recruit .ga-entry-links__body {
    top: clamp(60px, 7.625vw, 78px);
    left: 50%;
    width: 100%;
    align-items: center;
    transform: translateX(-50%);
  }

  .ga-entry-links__label,
  .ga-entry-links__card--recruit .ga-entry-links__label {
    gap: clamp(4px, 0.521vw, 5px);
    color: #fff;
    font-size: 14px;
    line-height: 14px;
  }

  .ga-entry-links__mark {
    width: clamp(14px, 1.637vw, 16.75px);
    height: clamp(14px, 1.637vw, 16.75px);
    flex-basis: clamp(14px, 1.637vw, 16.75px);
  }

  .ga-entry-links__title,
  .ga-entry-links__card--recruit .ga-entry-links__title {
    width: auto;
    max-width: calc(100% - 32px);
    margin-top: clamp(8px, 1.075vw, 11px);
    color: #fff;
    font-size: clamp(30px, 4.106vw, 42px);
    line-height: 1;
  }

  .ga-entry-links__lead {
    width: auto;
    max-width: calc(100% - 40px);
    margin-top: clamp(14px, 2.15vw, 22px);
    color: #fff;
    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.05em;
    white-space: normal;
  }

  .ga-entry-links__arrow,
  .ga-entry-links__card::after {
    width: clamp(30px, 3.91vw, 40px);
    height: clamp(30px, 3.91vw, 40px);
  }
}

/* Tablet: present SIMULATION and RECRUIT as a balanced two-card row. */
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .ga-entry-links__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(calc(100% - 40px), 913px);
    max-width: 913px;
  }

  .ga-entry-links__lead {
    width: calc(100% - 24px);
    max-width: calc(100% - 24px);
  }

}

/* ========================================================================
   FLUID SP ENTRY TITLE (375px - 767.98px)
   DevTools search keyword: ENTRY-LINKS-SP-WIDE-TITLE
   ======================================================================== */
@media screen and (min-width: 375px) and (max-width: 767.98px) {
  .ga-entry-links__body {
    top: clamp(40px, calc(40 / var(--design-sp) * 100vw), 60px) !important;
  }

  .ga-entry-links__card--recruit .ga-entry-links__body {
    top: clamp(36px, calc(36 / var(--design-sp) * 100vw), 60px) !important;
  }

  .ga-entry-links__title,
  .ga-entry-links__card--recruit .ga-entry-links__title {
    margin-top: clamp(11px, calc(11 / var(--design-sp) * 100vw), 16px) !important;
    font-size: clamp(35px, calc(28.3036px + 1.785714vw), 42px) !important;
    line-height: clamp(35px, calc(28.3036px + 1.785714vw), 42px) !important;
  }

  .ga-entry-links__lead {
    margin-top: clamp(10px, calc(10 / var(--design-sp) * 100vw), 18px) !important;
  }
}

/* ========================================================================
   ENTRY LINKS UNIVERSAL CENTERING
   DevTools search keyword: ENTRY-LINKS-UNIVERSAL-CENTER
   ======================================================================== */
.ga-entry-links__body,
.ga-entry-links__card--recruit .ga-entry-links__body {
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}

/* 1440px Figma: card top to label 126px / lead bottom to card bottom 129px */
@media screen and (min-width: 1280px) {
  .ga-entry-links__body,
  .ga-entry-links__card--recruit .ga-entry-links__body {
    top: calc(50% - 1.5px) !important;
  }

  .ga-entry-links__mark {
    width: 16px;
    height: 16px;
    flex-basis: 16px;
  }

  .ga-contact__mark {
    width: 15px;
    height: 15px;
    flex-basis: 15px;
  }
}

/* ========================================================================
   SP COMMON POLISH (max-width: 767.98px)
   DevTools search keyword: SP COMMON POLISH
   ======================================================================== */
@media screen and (max-width: 1279px) {
  #page #breadcrumbs .aioseo-breadcrumbs .aioseo-breadcrumb-separator {
    width: 4px;
    height: 4px;
    margin: 0 15px;
    vertical-align: middle;
  }
}

@media screen and (max-width: 767.98px) {
  /* [SP-COMMON-01] 共通テキスト：最小15px */
  #breadcrumbs,
  #breadcrumbs a,
  #breadcrumbs .aioseo-breadcrumb,
  .ga-entry-links__label,
  .ga-entry-links__card--recruit .ga-entry-links__label,
  .ga-entry-links__lead,
  .ga-contact__label {
    font-size: 15px !important;
    line-height: 1.4 !important;
  }

  #footer.ga-footer .ga-footer__nav-list a,
  #footer.ga-footer .ga-footer__nav-heading,
  #footer.ga-footer .ga-footer__nav-group--personal .ga-footer__nav-list a,
  #footer.ga-footer .ga-footer__nav-group--corporate .ga-footer__nav-list a,
  #footer.ga-footer .ga-footer__bottom a,
  #footer.ga-footer .ga-footer__bottom small {
    font-size: 15px !important;
    line-height: 1.4 !important;
  }

  #footer.ga-footer .ga-footer__company-name {
    font-size: 15px !important;
  }

  #footer.ga-footer .ga-footer__address {
    font-size: 15px !important;
  }

  #footer.ga-footer .ga-footer__to-top {
    font-size: 15px !important;
  }
}

@media screen and (max-width: 575px) {
  /* [SP-COMMON-02] 共通カード・バナー：RECRUIT本文と同じ左右余白 */
  .ga-entry-links__inner {
    width: calc(355 / var(--design-sp) * 100vw) !important;
  }

  .ga-entry-links__card {
    height: max(188px, calc(189 / var(--design-sp) * 100vw)) !important;
    min-height: max(188px, calc(189 / var(--design-sp) * 100vw)) !important;
  }

  .ga-promo-banners__inner {
    width: calc(355 / var(--design-sp) * 100vw);
    max-width: none;
  }

  /* [SP-COMMON-03] 15px化したフッター最下部を2行で安全に配置 */
  #footer.ga-footer .ga-footer__bottom {
    left: 20px !important;
    right: 20px !important;
    bottom: 24px !important;
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 6px !important;
  }

  #footer.ga-footer .ga-footer__bottom a,
  #footer.ga-footer .ga-footer__bottom small {
    white-space: normal !important;
  }

  /* 320px幅でも住所が画面外へ出ないように折り返します。 */
  #footer.ga-footer .ga-footer__address {
    max-width: calc(100% - 40px) !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
}

/* SP：カード本文を語中で分断せず、指定した3行で表示 */
@media screen and (max-width: 767.98px) {
  .ga-entry-links__lead {
    width: calc(100% - 32px) !important;
    max-width: calc(100% - 32px) !important;
    letter-spacing: 0 !important;
    text-wrap: wrap;
  }

  .ga-entry-links__sp-break {
    display: inline;
  }

  .ga-entry-links__non-sp-punctuation {
    display: none;
  }
}

/* 横幅の広いSP：共通カード本文を2行に整える */
@media screen and (min-width: 576px) and (max-width: 767.98px) {
  .ga-entry-links__sp-break {
    display: none;
  }

  .ga-entry-links__pc-break,
  .ga-entry-links__non-sp-punctuation {
    display: inline;
  }
}

/* ===== Footer: narrow tablet 768-1159px ===== */
@media screen and (min-width: 768px) and (max-width: 1159px) {
  #footer.ga-footer {
    min-height: clamp(764px, calc(658.795px + 13.699vw), 834px);
    background-position: center;
  }

  #footer.ga-footer .ga-footer__inner {
    width: 100%;
    max-width: none;
    min-height: clamp(764px, calc(658.795px + 13.699vw), 834px);
    padding:
      clamp(48px, 5.625vw, 71.944px)
      clamp(40px, 5vw, 64px)
      28px;
  }

  #footer.ga-footer .ga-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(38px, 4vw, 51px);
    padding: 0;
  }

  #footer.ga-footer .ga-footer__catch {
    max-width: clamp(360px, calc(254.795px + 13.699vw), 430px);
    font-size: clamp(36px, calc(23.976px + 1.5656vw), 44px);
    line-height: 1.35;
    white-space: nowrap;
  }

  #footer.ga-footer .ga-footer__nav {
    display: grid;
    grid-template-columns:
      minmax(130px, 0.78fr)
      minmax(230px, 1.25fr)
      minmax(160px, 1fr);
    grid-template-rows: auto auto;
    column-gap: clamp(36px, 4vw, 51px);
    row-gap: clamp(30px, 3vw, 38px);
    width: 100%;
    margin: 0;
    padding: 0;
  }

  #footer.ga-footer .ga-footer__nav-group--about {
    grid-column: 1;
    grid-row: 1;
  }

  #footer.ga-footer .ga-footer__nav-group--personal {
    grid-column: 2;
    grid-row: 1;
  }

  #footer.ga-footer .ga-footer__nav-group--corporate {
    grid-column: 2;
    grid-row: 2;
  }

  #footer.ga-footer .ga-footer__nav-group--links {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  #footer.ga-footer .ga-footer__nav-heading,
  #footer.ga-footer .ga-footer__nav-list--primary a {
    font-size: clamp(15px, 1.25vw, 16px);
    line-height: 1.45;
    white-space: nowrap;
  }

  #footer.ga-footer .ga-footer__nav-heading + .ga-footer__nav-list {
    padding-top: clamp(18px, 2.1vw, 27px);
  }

  #footer.ga-footer .ga-footer__nav-list {
    gap: clamp(11px, 1vw, 13px);
  }

  #footer.ga-footer .ga-footer__nav-list a {
    font-size: clamp(14px, calc(12.497px + 0.1957vw), 15px);
    line-height: 1.45;
  }

  #footer.ga-footer .ga-footer__nav-list--primary {
    gap: clamp(16px, 1.72vw, 22px);
  }

  #footer.ga-footer .ga-footer__company {
    width: 100%;
    margin-top: clamp(48px, 5vw, 64px);
  }

  #footer.ga-footer .ga-footer__company.is-expanded {
    height: clamp(180px, 17.96875vw, 230px);
    min-height: clamp(180px, 17.96875vw, 230px);
    padding:
      clamp(24px, 3vw, 38px)
      clamp(28px, 4vw, 46px)
      clamp(20px, 1.95vw, 25px);
  }
}

/* Footer service label spacing */
@media screen and (min-width: 768px) and (max-width: 1279px) {
  #footer.ga-footer .ga-footer__nav-heading--support {
    margin-top: 25px;
  }
}

@media screen and (max-width: 767.98px) {
  #footer.ga-footer .ga-footer__nav-heading--support {
    margin-top: 20px;
  }

  #footer.ga-footer .ga-footer__nav-heading--support .ga-footer__support-line {
    display: block;
    white-space: nowrap;
  }

  /* SP footer: keep service links on one line. */
  #footer.ga-footer .ga-footer__nav-group--personal .ga-footer__nav-list a {
    display: inline-block !important;
    white-space: nowrap;
  }
}

/* ===== Footer: wide tablet 1160-1279px ===== */
@media screen and (min-width: 1160px) and (max-width: 1279px) {
  #footer.ga-footer .ga-footer__top {
    display: flex;
    grid-template-columns: none;
  }

  #footer.ga-footer .ga-footer__catch {
    max-width: none;
  }

  #footer.ga-footer .ga-footer__nav {
    width: clamp(620px, 54vw, 690px);
    flex: 0 0 clamp(620px, 54vw, 690px);
    row-gap: clamp(38px, 3.5vw, 44px);
  }

  #footer.ga-footer .ga-footer__nav-heading,
  #footer.ga-footer .ga-footer__nav-list--primary a {
    white-space: nowrap;
  }
}

/* SP touch: keep the SIMULATION / RECRUIT arrow anchored to the card corner. */
@media screen and (max-width: 767.98px) and (hover: none) and (pointer: coarse) {
  .ga-entry-links__card:hover .ga-entry-links__arrow,
  .ga-entry-links__card:focus-visible .ga-entry-links__arrow {
    right: 0;
    bottom: 0;
  }
}

/* Footer typography adjustments */
@media screen and (min-width: 1280px) {
  #footer.ga-footer .ga-footer__nav-heading--business {
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: max(14px, min(calc(15 / var(--design-pc) * 100vw), 20px));
    font-style: normal;
    font-weight: 700;
    line-height: max(14px, min(calc(16 / var(--design-pc) * 100vw), 21.333px));
  }

  #footer.ga-footer .ga-footer__nav-list--primary a.ga-footer__nav-link--compact {
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: max(14px, min(calc(16 / var(--design-pc) * 100vw), 21.333px));
    font-style: normal;
    font-weight: 700;
    line-height: max(14px, min(calc(16 / var(--design-pc) * 100vw), 21.333px));
  }
}

/* Center the remaining promo banner while the electric banner is disabled. */
@media screen and (min-width: 1280px) {
  .ga-promo-banners__inner--single {
    grid-template-columns: minmax(0, calc(443 / var(--design-pc) * 100cqw));
    justify-content: center;
  }
}

@media screen and (min-width: 768px) and (max-width: 1279px) {
  .ga-promo-banners__inner--single {
    grid-template-columns: minmax(0, calc((100% - clamp(20px, 2.637vw, 27px)) / 2));
    justify-content: center;
  }
}
