/* ============================================
   Local Google Fonts - @font-face declarations
   ============================================ */

/* --- Figtree (Variable Font) --- */
@font-face {
    font-family: 'Figtree';
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
    src: url('./assets/fonts/Figtree-Variable.woff2') format('woff2');
}

@font-face {
    font-family: 'Figtree';
    font-style: italic;
    font-weight: 300 900;
    font-display: swap;
    src: url('./assets/fonts/Figtree-Italic-Variable.woff2') format('woff2');
}

/* --- Zen Kaku Gothic New --- */
@font-face {
    font-family: 'Zen Kaku Gothic New';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('./assets/fonts/ZenKakuGothicNew-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

@font-face {
    font-family: 'Zen Kaku Gothic New';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('./assets/fonts/ZenKakuGothicNew-Medium.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

@font-face {
    font-family: 'Zen Kaku Gothic New';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('./assets/fonts/ZenKakuGothicNew-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

/* --- Zen Kaku Gothic Antique --- */
@font-face {
    font-family: 'Zen Kaku Gothic Antique';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('./assets/fonts/ZenKakuGothicAntique-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}
/* shippori-mincho-regular - japanese_latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 400;
  src: url('./assets/fonts/shippori-mincho-v17-japanese_latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* shippori-mincho-500 - japanese_latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 500;
  src: url('./assets/fonts/shippori-mincho-v17-japanese_latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* shippori-mincho-600 - japanese_latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 600;
  src: url('./assets/fonts/shippori-mincho-v17-japanese_latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* shippori-mincho-700 - japanese_latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 700;
  src: url('./assets/fonts/shippori-mincho-v17-japanese_latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* shippori-mincho-800 - japanese_latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 800;
  src: url('./assets/fonts/shippori-mincho-v17-japanese_latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


/* セクション見出し */
.is-style-sechead01 {}
.is-style-sechead01 .ark-block-heading__main {
    color:var(--ark-color_main);
    font-size:min(5rem, 12vw);
    line-height: 1.2;
}
.is-style-sechead01 .ark-block-heading__line {
}
.is-style-sechead01 .ark-block-heading__line::before{}
.is-style-sechead01 .ark-block-heading__sub {
    font-size:min(1.6rem, 4.5vw);
}


.is-style-sechead02 {}
.is-style-sechead02 .ark-block-heading__main {
    font-size:min(3rem, 6vw);
    line-height: 1.3;
}
.is-style-sechead02 .ark-block-heading__line {
}
.is-style-sechead02 .ark-block-heading__line::before{
    width: 6em;
}
.is-style-sechead02 .ark-block-heading__sub {
    color:var(--ark-color_main);
    font-size:min(1.4rem, 4vw);
    line-height:1.6;
}


.is-style-sechead03 {
    text-align: center;
}
.is-style-sechead03 .ark-block-heading__main {
    color:var(--ark-color_main);
    font-size:min(3rem, 6vw);
    line-height: 1.6;
    display: inline-block;
    border-bottom:1px solid var(--ark-color_main);
}
.is-style-sechead03 .ark-block-heading__line {
    display: none;
}
.is-style-sechead03 .ark-block-heading__line::before{}
.is-style-sechead03 .ark-block-heading__sub {
    font-size:min(1rem, 2.5vw);
    line-height:1.6;
    padding:2rem;
}

.is-style-sechead04 {
}
.is-style-sechead04 .ark-block-heading__main {
    font-size:min(2rem, 4vw);
    line-height: 1.6;
}
.is-style-sechead04 .ark-block-heading__line {}
.is-style-sechead04 .ark-block-heading__line::before{
    width: 100%;
    height: 1px;
}
.is-style-sechead04 .ark-block-heading__sub {
    font-size:min(1rem, 2.5vw);
    line-height:1.6;
    padding:2rem;
}




/* 通常見出し */
.is-style-corehead01 {
    border-bottom: solid 3px var(--ark-color_main);
    padding: 0.5rem 0;
}
.is-style-corehead02 {
    position: relative;
    border-bottom: 5px solid #ddd;
    padding: 10px 0;
    }
.is-style-corehead02:before {
    position: absolute;
    left: 0;
    bottom: -5px;
    width: 20%;
    height: 5px;
    content: '';
    background: var(--ark-color_main);
}


.is-style-corehead03 {
    border-bottom: 1px solid var(--ark-color--text);
    padding: 0.2em 0.5em;
    border-left: solid 5px var(--ark-color_main);
}


.is-style-corehead04 {
    border-left: 5px solid var(--ark-color_main);
    padding: 0.5em 0.5em!important;

}
































/* wpforms */
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=date],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=datetime],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=datetime-local],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=email],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=month],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=number],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=password],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=range],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=search],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=tel],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=text],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=time],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=url],
div.wpforms-container-full.is-style-wpform01 .wpforms-form input[type=week],
div.wpforms-container-full.is-style-wpform01 .wpforms-form select,
div.wpforms-container-full.is-style-wpform01 .wpforms-form textarea {
     background: #fafafa;
     padding: 1rem !important;
     border: none;
     border-radius: 3px;
 }
div.wpforms-container-full.is-style-wpform01 .wpforms-form  button[type="submit"] {
    background-color: var(--ark-color_main);
    gap: 0.2em;
    display: block;
    line-height: 1.5;
    margin: auto;
    color:#fff;
    max-width: 100%;
    min-width: 200px;
    padding: 1em 3em;
    position: relative;
    text-align: center;
    text-decoration: none;
    transition: color .25s,background-color .25s;
}
div.wpforms-container-full.is-style-wpform01 .wpforms-form  button[type="submit"]:hover {
    background-color: #FFF;
    color:var(--ark-color_main);
}
div.wpforms-container-full.is-style-wpform01 .wpforms-form .wpforms-is-recaptcha {
    text-align:center;
}
div.wpforms-container-full.is-style-wpform01 .wpforms-form .wpforms-is-recaptcha .g-recaptcha > div {
    margin:auto;
}



div.wpforms-container-full.is-style-wpform02 .wpforms-form .wpforms-field {
    display: grid;
    grid-template-columns:1fr 4fr ;
    grid-template-rows:2fr ;
    gap:0 1rem;
    grid-template-areas:"ar1 ar2" "ar3 ar4";
}
div.wpforms-container-full.is-style-wpform02 .wpforms-form .wpforms-field .wpforms-field-label {

}
div.wpforms-container-full.is-style-wpform02 .wpforms-form .wpforms-field label.wpforms-error {
    grid-area: ar4;
}

div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=date],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=datetime],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=datetime-local],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=email],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=month],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=number],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=password],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=range],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=search],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=tel],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=text],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=time],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=url],
div.wpforms-container-full.is-style-wpform02 .wpforms-form input[type=week],
div.wpforms-container-full.is-style-wpform02 .wpforms-form textarea {
     background: #fafafa;
     padding: 1rem !important;
     border: none;
     border-radius: 3px;
}
div.wpforms-container-full.is-style-wpform02 .wpforms-form  button[type="submit"] {
    background-color: var(--ark-color_main);
    gap: 0.2em;
    display: block;
    line-height: 1.5;
    margin: auto;
    color:#fff;
    max-width: 100%;
    min-width: 200px;
    padding: 1em 3em;
    position: relative;
    text-align: center;
    text-decoration: none;
    transition: color .25s,background-color .25s;
}
div.wpforms-container-full.is-style-wpform02 .wpforms-form  button[type="submit"]:hover {
    background-color: #FFF;
    color:var(--ark-color_main);
}
div.wpforms-container-full.is-style-wpform02 .wpforms-form .wpforms-is-recaptcha {
    text-align:center;
}
div.wpforms-container-full.is-style-wpform02 .wpforms-form .wpforms-is-recaptcha .g-recaptcha > div {
    margin:auto;
}








/* icon回転 */
.ark-block-icon.is-style-icon_turn90 .ark-block-icon__frame {
    transform: rotate(90deg);
}
.ark-block-icon.is-style-icon_turn180 .ark-block-icon__frame {
    transform: rotate(180deg);
}
.ark-block-icon.is-style-icon_turn270 .ark-block-icon__frame {
    transform: rotate(270deg);
}

/* ソーシャルリンクの形状 */
.wp-block-social-links.is-style-socailinks01 .wp-block-social-link {
    border-radius:6px;
}


/* タイピングアニメーションの右端の線を削除 */
.o-anim-typing-caret::after {
    display:none!important;
}





/*************************************************************************************************************

追加カスタム

**************************************************************************************************************/
/* lhst-pulldown_cstm01 プルダウンリンク１*/
.lhst-pulldown_cstm01 {
    position: relative;
    min-width: 200px;
    cursor: pointer;
}

.lhst-pulldown_cstm01 .selected-item {
    user-drag: none;
    -webkit-user-drag: none;
    -moz-user-select: none;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    background-color: #f9f9f9;
}

.lhst-pulldown_cstm01 ul {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    border: 1px solid #ccc;
    border-radius: 5px;
    background-color: #f9f9f9;
    list-style: none;
    margin: 0;
    padding: 0;
    z-index: 999;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transition: opacity 0.3s, max-height 0.3s; /* 0.3sはアニメーションの秒数、お好みで調整してください */
}
.lhst-pulldown_cstm01 ul li {
    padding: 10px;
}

.lhst-pulldown_cstm01 ul li:hover {
    background-color: #e9e9e9;
}

.lhst-pulldown_cstm01 ul li a {
    text-decoration: none;
    color: inherit;
    display: block;
}
.lhst-pulldown_cstm01.active ul {
    opacity: 1;
    max-height: 250px;
}


/* lhst-dtlist_cstm01 プルダウンリンク１*/
.lhst-dtlist_cstm01 {
    
}







/* =========================================================
  Second Hero (absolute layout)
  - 右画像：absolute で重ねる
  - 左の青カード：::before（画像より小さく）
========================================================= */

.wp-block-ls-second-hero{
  --max: 1200px;
  --px: clamp(16px, 3vw, 32px);   /* 左右余白 */
  --card-w: 62%;                  /* 青カードの幅（画像より小さく） */
  --card-h: clamp(240px, 36vw, 380px);
  --radius: 18px;

  --img-w: 58%;                   /* 右画像の幅（カードより少し大きい） */
  --img-right: var(--px);         /* 右端からのオフセット */
  --img-top: clamp(40px, 4vw, 64px); /* 上からのオフセット */
}

/* レイアウトの土台 */
.wp-block-ls-second-hero .ls-sh__inner{
  position: relative;
  max-width: var(--max);
  margin: 0 auto;
  padding: clamp(12px, 2vw, 24px) var(--px) clamp(20px, 3vw, 40px);
  min-height: calc(var(--card-h) + clamp(16px, 2vw, 24px)); /* 下そろえの余白分 */
}

/* 青い角丸長方形（背景PNG） */
.wp-block-ls-second-hero .ls-sh__inner::before{
  content:"";
  position:absolute;
  left: var(--px);
  bottom: clamp(12px, 2vw, 20px);       /* 画像と下辺をそろえるための基準 */
  width: var(--card-w);
  height: var(--card-h);
  background: url("https://relays0509.xsrv.jp/wp-content/uploads/2025/10/6fba2531831f3bc4b2a93b7b5dfb424e.png") center/cover no-repeat;
  border-radius: var(--radius);
  z-index: 1;
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
}

/* 右の写真：absolute で重ねる（カードより大きく） */
.wp-block-ls-second-hero .ls-sh__media{
  position: absolute;
  right: var(--img-right);
  top: var(--img-top);
  width: var(--img-w);
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  z-index: 2; /* カードより前面 */
}

.wp-block-ls-second-hero .ls-sh__img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio: 16/10;      /* 必要に応じて調整 */
  object-fit: cover;
}

/* テキスト（左上） */
.wp-block-ls-second-hero .ls-sh__title,
.wp-block-ls-second-hero .ls-sh__subtitle{
  position: relative;
  z-index: 3;               /* 画像・カードより前面 */
  color: #fff;
  margin: 0;
  max-width: calc(var(--card-w) - clamp(16px,2.4vw,32px)); /* カード内に収める */
  padding-left: clamp(18px, 2.6vw, 40px);
}

.wp-block-ls-second-hero .ls-sh__title{
  font-size: clamp(24px, 3.2vw, 40px);
  line-height: 1.25;
  font-weight: 700;
  margin-top: clamp(10px, 1.2vw, 14px);
}

.wp-block-ls-second-hero .ls-sh__subtitle{
  font-size: clamp(12px, 1.4vw, 16px);
  line-height: 1.7;
  opacity: .9;
  margin-top: clamp(8px, .8vw, 10px);
}

/* ---------- レスポンシブ：縦積み（absolute解除） ---------- */
@media (max-width: 1024px){
  .wp-block-ls-second-hero{
    --card-w: calc(100% - var(--px)*2);
    --card-h: clamp(200px, 44vw, 300px);
    --img-w: 100%;
    --img-top: 0px;
  }

  .wp-block-ls-second-hero .ls-sh__inner{
    padding-bottom: clamp(20px, 5vw, 40px);
    min-height: auto;
  }

  .wp-block-ls-second-hero .ls-sh__inner::before{
    left: var(--px);
    right: var(--px);
    width: var(--card-w);
    bottom: auto;
    top: clamp(8px, 2vw, 16px);
  }

  .wp-block-ls-second-hero .ls-sh__media{
    position: static;             /* 解除して通常フローへ */
    width: 100%;
    margin-top: clamp(12px, 3vw, 24px);
  }

  .wp-block-ls-second-hero .ls-sh__title,
  .wp-block-ls-second-hero .ls-sh__subtitle{
    max-width: none;
    padding-left: clamp(14px, 3vw, 24px);
  }
}
