/* TECRITA Corporate: minimal overrides (variables first) */
:root{
  /* Corporate tone: a bit tighter */
  --tecrita-container-pad: 16px;

  /* Hero: calm overlay */
  --hero-overlay: linear-gradient(180deg, rgba(2,6,23,.25), rgba(2,6,23,.70));
  --hero-text-shadow: 0 2px 24px rgba(2,6,23,.35);

  /* STRACTION */
  --ff-sans: "Inter", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ff-serif: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --fz-hero: clamp(28px, 4vw, 44px);
  --fz-lead: clamp(14px, 1.6vw, 18px);
  --fz-h2: clamp(20px, 1.8vw, 24px);
  --fz-title: clamp(18px, 1.5vw, 20px);
  --fz-18-32: clamp(18px, 3vw, 32px);
  --fz-20-36: clamp(20px, 4vw, 36px);
  --fz-20-38: clamp(20px, 9vw, 38px);
  --fz-30-48: clamp(30px, 8vw, 48px);
  --fz-22-48: clamp(30px, 7vw, 48px);

  --color-subblue:#4AA8D8;
  --color-border:#6f6f6f;
  --color-gray:#7a7a7a;
  --c-blue: #4AA8D8;
  --c-navy: #1F4E79;
  --c-red: #FF3B3B;
  --c-link: #4267b2;
  --c-l-blue: #d5eeff;
  --c-l-red: #ffe2e2;
  --c-text: #2b2b2b;
  --c-muted: #6f6f6f;
  --c-border: #e9e9e9;
  --c-bg: #ffffff;
  --c-header-bg: rgba(255, 255, 255, .30);
  --c-header-border: rgba(0, 0, 0, .06);
  --c-accent: #353535;
  --c-accent-dark: #202020;
  --c-soft: #ececec;
  --c-ghost: #ffffff;
  --c-ghost-border: rgba(255, 255, 255, .7);

  --shadow1: rgba(0, 0, 0, 0.06) 0px 8px 24px;
}

/* reset */
a {
  text-decoration: none;
}

.site-main {
  padding-bottom: 0;
}


/* utility */
p.btn-box1 a {
  position: relative;
  display: block;
  padding: 5px 15px;
  width: 130px;
  text-align: center;
  color: #333;
  border: 1px solid var(--color-border);
  overflow: hidden;
  transition: border-color 0.5s ease;
  font-size: 0.9em;
}

p.btn-box2 {
  margin-block: 0;
}

p.btn-box2 a {
  position: relative;
  display: block;
  padding: 8px 15px;
  max-width: 260px;
  text-align: center;
  color: #333;
  border: 1px solid var(--color-border);
  overflow: hidden;
  transition: border-color 0.5s ease;
  background: #ffffffcc;
  margin: 20px 0 0 15%;
}

.btn-box-cta a {
  display: block;
  background-color: var(--c-red);
  color: #FFF;
  border-radius: 5px;
  padding: 8px 20px;
  font-size: 14px;
  width: 260px;
  text-align: center;
  margin: 0 auto;
}

.btn-box-cta a:hover {
  background-color: #ff7373;
  transition: 0.5s ease;
}

.hx-title-pre {
  font-size: var(--fz-30-48);
  font-weight: 700;
  color: var(--c-navy);
  margin: 0 auto;
  text-align: center;
}

.hx-title-pre::after {
  content: "";
  display: block;
  width: 30px;
  height: 3px;
  margin: 10px auto 0;
  background: var(--c-red);
  border-radius: 999px;
}

.hx-title {
  font-size: 1em;
  font-weight: normal;
  text-align: center;
  color: var(--c-navy);
}

h2.hx-title-page {
  font-size: var(--fz-20-36);
  font-weight: 700;
  text-align: center;
  color: var(--c-navy);
}

.hx-title-page::after {
  content: "";
  display: block;
  width: 30px;
  height: 3px;
  margin: 10px auto 0;
  background: var(--c-red);
  border-radius: 999px;
}

h3.hx-title-page {
  font-size: var(--fz-title);
  color: var(--c-navy);
  font-weight: 700;
}

h3.hx-title-page::after {
  display: none;
}

h2.hx-title-pt1 {
  font-size: var(--fz-20-36);
  font-weight: 700;
  text-align: left;
  color: var(--c-navy);
}

h2.hx-title-pt1::after {
  content: "";
  display: block;
  width: 30px;
  height: 5px;
  margin: 10px 0;
  background: var(--c-red);
  border-radius: 999px;
}

h3 {
  font-size: var(--fz-20-36);
  color: var(--c-navy);
}



/* nav */
.site-header__inner {
  max-height: 50px;
}


/* MV */
.b-hero__slides::after {
  background: linear-gradient(180deg, rgba(2, 6, 23, 0.068), rgba(2, 6, 23, 0.315));
}

.mv_in {
  max-width: 680px;
  margin-left: 0 !important;
  background: #0000002b;
  padding: 3em 2em;
}

.mv_in h1 {
  font-size: var(--fz-30-48);
}

/* NEWS */
.entry-content div.news_wrap {
  flex-direction: row;
  background: #ffffffb3;
  padding: 45px;
  --tecrita-container-pad: 45px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  max-width: 920px !important;
}

.news_left {
  display: flex;
  flex-direction: column;
  width: 260px;
  max-width: 260px;
  flex: 1;
  gap: 0;
  padding: 15px 20px;
}

.news_left .news_title {
  font-size: 40px;
  color: var(--color-subblue);
  margin: 0;
}

.news_left h2 {
  font-size: 1em;
  font-weight: normal;
}

div.news_left>p:last-child {
  margin-top: auto;
  flex-grow: unset;
} 

.news_right {
  flex: 1;
  padding: 15px 20px;
  max-height: 220px;
  overflow-y: scroll;
}

.news_text li *:last-child {
  width: 100%;
}

/* news under */
.news_cont2_wrap h2 {
  font-size: var(--fz-18-32);
  color: var(--tecrita-color-primary);
  font-weight: 700;
}

.entry-content .alignfull > .news_cont2_wrap{
  max-width: 640px;
  width: 100%;
  margin-inline: auto; /* 中央寄せ */
}

.news_cont2_wrap {
  max-width: 640px;
  margin: 100px 0 50px auto;
  position: relative;
  margin-right: 0 !important;
}

.news_cont2_wrap::after {
  content: "";
  position: absolute;
  top: 20%;
  left: -15vw;
  transform: translateX(-50%);
  width: clamp(80px, 20vw, 200px);
  height: clamp(80px, 20vw, 200px);
  background: var(--c-blue);
  border-radius: 50%;
  z-index: 0;
  opacity: 0.6;
}

.news_cont2_wrap::before {
  content: "";
  position: absolute;
  top: 40%;
  right: -15vw;
  transform: translateX(-50%);
  width: clamp(100px, 25vw, 280px);
  height: clamp(100px, 25vw, 280px);
  background: var(--c-navy);
  border-radius: 50%;
  z-index: 0;
  opacity: 0.6;
}

.news_cont2_wrap>div {
  top: 0;
  left: 20%;
}

.news_cont2_wrap h2 {
  font-size: var(--fz-18-32);
  color: var(--c-navy);
  font-weight: 700;
}

@media (max-width:860px){
  .entry-content div.news_wrap {
    flex-direction: column;
    gap: 30px;
  }
}

@media (max-width:640px){
  .entry-content div.news_wrap {
    padding: 20px 10px 30px;
  }

  .news_cont2_wrap::after {
        left: -10vw;
  }

  .news_cont2_wrap::before {
        top: 70%;
        right: -25vw;
    }
}

@media (max-width:480px){
  .news_text > li.wp-block-post {
    flex-direction: column;
  }

  .news_left {
    min-width: unset;
    width: 100%;
  }
}

/* =========================================================
   Service (corp.funabori.net 寄せ)
   - 背景：全幅 薄グレー
   - 中央で左右分割（1fr / 1fr）
   - 右カード：中央線を跨いで重ねる
   - 本文：カード下から開始
========================================================= */

/* 1) セクション（全幅背景 + constrained由来の左右余白を殺す） */
.service_block_wrap.alignfull{
  background: #f3f3f3;
  padding: clamp(36px, 5vw, 70px) 0;

  padding-left: 0 !important;
  padding-right: 0 !important;
}
.service_block_wrap.alignfull > .wp-block-group__inner-container{
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 2) Columns：100vwで中央分割（左=左端〜中央 / 右=中央〜右端） */
body:not(.wp-admin) .service_cont.wp-block-columns{
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow-x: clip;

  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: start;
}

/* 3) 左：画像（corp寄せは “cover” が一番近い）
   ※もし「比率autoのまま」を続けたい場合は下のコメントを参照 */
body:not(.wp-admin) .service_cont_left_img,
body:not(.wp-admin) .service_cont_left_img figure{
  margin: 0;
}

body:not(.wp-admin) .service_cont_left_img img{
  width: 100%;
  height: 480px;
  object-fit: cover;
  display: block;
}

/* ---- もし「高さ480px + 幅auto（比率維持）」にしたい場合は↑を↓に差し替え ----
body:not(.wp-admin) .service_cont_left_img{ height: 480px; overflow: hidden; }
body:not(.wp-admin) .service_cont_left_img img{
  height: 480px;
  width: auto;
  max-width: none;
  display: block;
  margin-left: 0;
  margin-right: auto;
}
-------------------------------------------------------------------------- */

/* 4) 右：テキスト領域（中央起点で、内側に余白を持たせる） */
body:not(.wp-admin) .service_cont_right_text{
  position: relative;
  z-index: 2;

  /* 右側の内側余白（corpの“抜け”感） */
  padding: clamp(22px, 3vw, 44px);

  /* カードが絶対配置で被る分、本文を押し下げる */
  padding-top: 170px;
}

/* 右カラムの中身は読みやすい幅に */
body:not(.wp-admin) .service_cont_right_text > *{
  max-width: 620px;
  margin-left: 0;
  margin-right: auto;
}

p.service_cont_text {
  margin: 40px;
}

/* 5) 右カード（重ね） */
body:not(.wp-admin) .service_cont_right_box{
  position: absolute;
  z-index: 3;

  /* 位置：中央線付近から左へ食い込ませる */
  top: 3vh;
  left: 30%;
  transform: translateX(-50%); /* ←重ね量（-15%〜-30%で調整） */

  width: min(720px, 640px);
  background: #fff;
  padding: 30px 36px;
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
}

/* 6) SP：縦積み + 重ね解除（corpの自然な崩れ方） */
@media (max-width: 781px){
  body:not(.wp-admin) .service_cont.wp-block-columns{
    grid-template-columns: 1fr;
  }

  body:not(.wp-admin) .service_cont_left_img img{
    height: 320px;
  }

  body:not(.wp-admin) .service_cont_right_text{
    padding-top: 0;
  }

  body:not(.wp-admin) .service_cont_right_box{
    position: static;
    transform: none;
    width: auto;
    margin: -70px var(--tecrita-container-pad, 16px) 18px;
    padding: 22px 18px;
  }

  body:not(.wp-admin) .service_cont_right_text > *{
    max-width: 100%;
  }

  body:not(.wp-admin) p.service_cont_text {
    margin: 10px;
  }

  body:not(.wp-admin) .service_cont_right_text {
    padding: unset;
  }
}

/* =========================================================
   Reverse pattern (.service_cont.rev)
   画像 ↔ テキスト を左右反転 + カード重ねも反転
========================================================= */

/* 1) まず左右カラム自体を反転 */
body:not(.wp-admin) .service_cont.wp-block-columns.rev{
  direction: rtl; /* グリッドの見た目を反転（子要素の並びはそのまま） */
}

/* 2) 子要素の文字方向は通常に戻す（rtlの副作用を消す） */
body:not(.wp-admin) .service_cont.wp-block-columns.rev > *{
  direction: ltr;
}

/* 3) 反転時：テキスト領域の余白を“左側”基準にする */
body:not(.wp-admin) .service_cont.wp-block-columns.rev .service_cont_right_text{
  /* 既存は全方向 padding なので、左右だけ明示して反転 */
  padding-left: clamp(22px, 3vw, 44px);
  padding-right: clamp(22px, 3vw, 44px);
  padding-top: 0; /* カード分の押し下げは同じ */
}

/* 4) 反転時：カード位置を逆に（中央線付近から“右へ”食い込ませる）
   ※あなたの現状の指定（left:30% transform:-50%）を上書き */
body:not(.wp-admin) .service_cont.wp-block-columns.rev .service_cont_right_box{
  left: auto !important;
  right: 30% !important;      /* 反対側基準に */
  transform: translateX(50%) !important; /* 逆方向へ */
}

/* 5) 反転時：右カラム中身の最大幅ルールは同じでOKだが、
   “中央起点で積む”をより確実にするならこのまま */
body:not(.wp-admin) .service_cont.wp-block-columns.rev .service_cont_right_text > *{
  max-width: 620px;
  margin-left: 0;
  margin-right: auto;
}

/* 6) SPはどちらも縦積み＆重ね解除なので追加不要（必要なら微調整だけ） */
@media (max-width: 781px){
  body:not(.wp-admin) .service_cont.wp-block-columns.rev{
    direction: ltr; /* 念のためSPでは無効化しておく */
  }
}

/* =========================================================
   SP：rev だけ確実に直す（direction の副作用を消す）
========================================================= */
@media (max-width: 781px){

  /* rev はSPでは反転不要（縦積みで統一） */
  body:not(.wp-admin) .service_cont.wp-block-columns.rev{
    direction: ltr !important;
  }

  /* 念のため、子要素の direction も通常化 */
  body:not(.wp-admin) .service_cont.wp-block-columns.rev > *{
    direction: ltr !important;
  }

  /* SPでは順番を明示（画像→テキスト） */
  body:not(.wp-admin) .service_cont.wp-block-columns.rev .service_cont_left_img{
    order: 0 !important;
  }
  body:not(.wp-admin) .service_cont.wp-block-columns.rev .service_cont_right_text{
    order: 1 !important;
  }

  /* rev でもカードは通常フローに戻す */
  body:not(.wp-admin) .service_cont.wp-block-columns.rev .service_cont_right_box{
    position: static !important;
    transform: none !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
  }
}
/* ===============================
   Company Recruit
================================ */
.com_rec_wrap {
  padding: clamp(36px, 5vw, 70px) 0;
}

/* ===============================
   CTA
================================ */

/* ========== フロント（公開側）だけフルブリード ========== */
body:not(.wp-admin) .cta_block_wrap {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow-x: clip;
}

.cta_block_wrap .wp-block-group__inner-container {
  max-width: 920px;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
  padding-bottom: 1px;
}

/* ========== ブロックエディタ内（編集画面/プレビューiframe）では通常幅 ========== */
.editor-styles-wrapper .cta_block_wrap {
  position: relative;
  width: 100%;               /* ここでvwを無効化 */
  left: auto;
  right: auto;
  margin-left: auto;
  margin-right: auto;
  background: #f9f9f9;
}

.editor-styles-wrapper .cta_block_wrap .wp-block-group__inner-container {
  max-width: 920px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.cta_cont1_wrap {
  background: #ffffffb3;
  padding: 30px 50px 45px;
  margin-top: 50px;
  margin-bottom: 50px;
  border-radius: 50px 50px 0 0;
}

.cta_cont1_wrap>div {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

.cta_left,
.cta_right {
  padding: 0 30px;
}

.cta_cont1_wrap h3,
.open_hour {
  font-size: 15px;
  font-weight: 700;
  color: var(--c-accent);
  margin-bottom: 0;
  margin-top: 0;
  text-align: center;
}

.editor-styles-wrapper .cta_cont1_wrap h3 {
  font-size: 15px;
  font-weight: 700;
  color: var(--c-accent);
}

.cta_cont2_wrap {
  margin-top: 30px;
}

.cta_cont2_wrap>div {
  background: #FFF;
  padding: 20px;
}

.cta_tel {
  font-size: var(--fz-20-38);
  font-weight: 700;
  margin: -10px 0;
  color: var(--c-navy);
  display: flex;
  justify-content: center;
  align-items: center;
}

.cta_tel i {
  font-size: var(--fz-18-32);
  margin-right: 10px;
  margin-bottom: -8px;
}

@media (max-width: 960px) {
  .cta_cont1_wrap {
    margin-right: 10px;
    margin-left: 10px;
  }
}

@media (min-width: 782px) {
  .wp-block-columns:not(.is-not-stacked-on-mobile)> .cta_left.wp-block-column,
  .wp-block-columns:not(.is-not-stacked-on-mobile)> .cta_right.wp-block-column {
    flex-basis: auto;
  }
}
@media (max-width: 781px) {
  .cta_cont1_wrap {
    padding: 30px 30px 45px;
  }

  .cta_cont2_wrap {
    flex-direction: column-reverse;
    align-content: center;
  }

  .cta_tel {
    margin: 0;
  }
}


@media (max-width: 420px) {
  .cta_cont1_wrap {
    padding: 30px 15px 45px;
  }

  .btn-box-cta a {
    width: 100%;
  }
  .cta_cont2_wrap>div {
    width: 100%;
  }
}



/* ===============================
   about --page.php
================================ */
/* greeting 用だけセンタリング解除 */
.greeting_wrap.is-layout-constrained > figure.wp-block-image{
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.greeting_wrap.is-layout-constrained > div.greeting_block {
  margin-left: 100px !important;
}

.greeting_wrap figure {
  max-width: 50%;
  position: relative;
  z-index: 0;
}

.greeting_block {
  background: #ffffffe6;
  padding: 30px;
  box-shadow: var(--shadow1);
  position: relative;
  z-index: 1;
  margin-top: -80px;
  margin-left: 100px;
}

@media (max-width:640px){
  .greeting_wrap figure {
    max-width: 95%;
  }
  .greeting_block {
    margin-left: 10px;
    padding: 30px 15px;
  }

  .greeting_wrap.is-layout-constrained > div.greeting_block {
    margin-left: 10px !important;
  }

}

section div.form_wrap {
  border: 1px solid transparent;
  padding: 24px 22px;
  box-shadow: var(--shadow1);
}

section div.form_wrap dl {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px dashed var(--c-border);
  margin: 0;
}

section div.form_wrap dl:last-child {
  border-bottom: none;
}

section div.form_wrap dl dt {
  flex: unset;
  text-align: left;
  align-items: unset;
  padding: 8px;
  flex-direction: column;
  min-width: 80px;
}

section div.form_wrap dl dt small {
  font-size:0.8em;
  font-weight: normal;
}


@media (max-width:420px){
  section div.form_wrap dl {
    flex-direction: column;
    align-items: flex-start;
  }
  section div.form_wrap dt {
    font-weight: 700;
  }
  section div.form_wrap dd {
    margin-left: 10px;
  }
}

.map-gray iframe {
  margin: 50px auto;
  filter: grayscale(100%);
  transition: filter .4s ease;
}

.map-gray iframe:hover {
  filter: grayscale(0%);
}


/* ===============================
   service --page.php
================================ */
.service_wrap1{
  position: relative;
}

.seivice1_cont {
  padding: 20px 15px;
  box-shadow: var(--shadow1);
}

.seivice1_cont i {
  font-size: 40px;
  color: var(--c-muted);
  text-align: center;
  display: block;
  margin: 50px auto;
}

.seivice1_wrap h3.hx-title-page {
  background: var(--c-link);
  padding: 5px 20px;
  color: #FFF;
  font-weight: normal;
}


/* 飛行機 */
.planePath {
  stroke: #D9DADA;
  stroke-width: .1%;
  stroke-width: .5%;
  stroke-dasharray: 1% 2%;
  stroke-linecap: round;
  fill: none;
}

.fil1 {
  fill: #D9DADA;
}

.fil2 {
  fill: #C5C6C6;
}

.fil4 {
  fill: #9D9E9E;
}

.fil3 {
  fill: #AEAFB0;
}


/* ========== フロント（公開側）だけフルブリード ========== */
body:not(.wp-admin) .seivice1_wrap {
  position: relative;
  width: 100vw;
  background-color: #ffffff;
  background-image: radial-gradient(circle, var(--c-l-blue) 1px, transparent 1px);
  background-position: 0 0;
  background-size: 4px 4px;
  overflow-x: clip;
  padding-top: 1px;
  padding-bottom: 1px;
}

body:not(.wp-admin) .seivice2_wrap {
  background-image: radial-gradient(circle, var(--c-l-red) 1px, transparent 1px);
}


.seivice1_wrap>.wp-block-group__inner-container {
  max-width: 1200px;
  margin: 65px auto;
  padding: 50px;
  box-sizing: border-box;
  background: #FFF;
}

/* ========== ブロックエディタ内（編集画面/プレビューiframe）では通常幅 ========== */
.editor-styles-wrapper .seivice1_wrap {
  position: relative;
  width: 100%;               /* ここでvwを無効化 */
  left: auto;
  right: auto;
  margin-left: auto;
  margin-right: auto;
  background: #f9f9f9;
}

.editor-styles-wrapper .seivice1_wrap .wp-block-group__inner-container {
  max-width: 920px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.seivice1_wrap h2.hx-title-page {
  margin-top: 0;
}


.webconsul_cont>div {
  align-content: center;
}

@media (max-width: 1230px){
  .seivice1_wrap>.wp-block-group__inner-container {
    margin: 65px 10px;
  }
}

@media (max-width: 781px){
  .webconsul_cont {
    flex-direction: column-reverse;
  }

  .webconsul_cont>div {
    margin: 0 auto;
  }
}

@media (max-width: 480px){
  .seivice1_wrap>.wp-block-group__inner-container {
    padding: 50px 15px;
  }
}


/* ===============================
   contact --page.php
================================ */
.contact_wrap {
  display: flex;
  flex: 1;
  flex-wrap: wrap;
  justify-content: center;
  gap: 50px;
  margin-bottom: 50px;
}

.contact_wrap>div {
  flex: 1;
}

.tel-link {
  display: block;
  font-size: var(--fz-18-32);
  color: #FFF;
  font-weight: 700;
  text-align: center;
  background: var(--c-navy);
  max-width: 420px;
  border-radius: 50px;
  padding: 5px;
  margin: 20px auto 0;
}

section div.form_wrap.cta_form {
  max-width: 800px;
}


.bt_confirm {
  text-indent: 0 !important;
  background: unset;
  width: 200px;
  background-color: var(--c-accent);
  color: #FFF;
  border-radius: 30px;
  font-weight: 700;
  padding: 15px;
  height: auto;
  border: 1px solid #FFF;
}

section p.annot, section form p.annot,
section div.form_wrap dl dt label {
  color: var(--c-accent);
  max-width: 800px;
  margin: 0 auto;
}

section div.form_wrap.cta_form dl dt {
  flex-direction: row;
  justify-content: flex-start;
}

h2.mail.title{display:none;}


@media (max-width:840px){
  .contact_wrap {
    flex-direction: column;
  }
}
@media (max-width:520px){
  section div.form_wrap.cta_form dl dt {
    width: 100% !important;
    align-items: flex-start;
  }
  
  section div.form_wrap.cta_form dl dd {
    width: 100% !important;
  }
  
  section div.form_wrap.cta_form .tel {
    flex-direction: column;
  }
}