/* ==========================================================
   NOYA DESIGN STUDIO / CONTACT PAGE v1.9.2
========================================================== */
.nd-contact-page {
  --nd-black:#111315; --nd-gray:#646762; --nd-line:#D9DAD5;
  --nd-blue:#3437F2; --nd-accent:#B7E000; --nd-white:#F7F7F4; --nd-error:#C23B32;
  --nd-page-edge:clamp(18px,2.2vw,38px); --nd-rail-width:clamp(156px,10.8vw,210px);
  --nd-content-gap:clamp(36px,5vw,90px); --nd-rail-sticky-top:clamp(170px,28vh,290px);
  --nd-content-max:1120px; --nd-form-max:980px;
  position:relative; display:grid; grid-template-columns:var(--nd-page-edge) var(--nd-rail-width) minmax(0,1fr);
  width:100%; max-width:100%; margin:0!important; padding:0; overflow-x:clip; color:var(--nd-black); background:var(--nd-white);
}
.nd-contact-page,.nd-contact-page *,.nd-contact-page *::before,.nd-contact-page *::after{box-sizing:border-box}
.nd-contact-page a{color:inherit}

/* SWELL標準パンくずはCONTACT専用パンくずと重複するため非表示 */
body.noya-contact-page-active .p-breadcrumb,
body.noya-contact-page-active #breadcrumb,
body.noya-contact-page-active .c-breadcrumb {
  display:none!important;
}


/* LEFT RAIL */
.nd-contact-page__rail{position:relative;z-index:2;grid-column:2;grid-row:1;align-self:stretch;width:100%;min-width:0;margin:0;padding:0;border-right:1px solid var(--nd-line)}
.nd-contact-page__rail-sticky{position:sticky;top:var(--nd-rail-sticky-top);display:flex;justify-content:center;width:100%;pointer-events:none}
.nd-contact-page__rail-label{display:block;margin:0;padding:0;color:var(--nd-black);font-family:"Barlow Condensed",sans-serif!important;font-size:clamp(44px,3.4vw,58px)!important;font-weight:700!important;line-height:1!important;letter-spacing:.12em!important;white-space:nowrap;writing-mode:vertical-rl;text-orientation:mixed}

/* SHELL */
.nd-contact-page__inner{grid-column:3;grid-row:1;min-width:0;width:100%;padding:clamp(80px,6vw,100px) clamp(52px,6vw,104px) clamp(140px,11vw,180px) var(--nd-content-gap)}
.nd-contact-page__content{width:min(100%,var(--nd-content-max));margin:0 auto 0 0}

/* BREADCRUMB */
.nd-contact-page__breadcrumb{margin:0 0 clamp(60px,5.5vw,82px);padding:0}
.nd-contact-page__breadcrumb-list{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0!important;padding:0!important;list-style:none!important;color:var(--nd-gray);font-family:"Barlow Condensed",sans-serif!important;font-size:14px!important;font-weight:600;line-height:1.3;letter-spacing:.085em}
.nd-contact-page__breadcrumb-list li{margin:0;padding:0}
.nd-contact-page__breadcrumb-list a{color:inherit!important;text-decoration:none!important}
.nd-contact-page__breadcrumb-list a:hover,.nd-contact-page__breadcrumb-list a:focus-visible{color:var(--nd-black)!important}

/* HEADER */
.nd-contact-page__header{margin:0 0 clamp(64px,6vw,88px)}
.nd-contact-page__heading-frame{display:flex;align-items:center;width:min(100%,620px);min-height:82px;padding:18px clamp(22px,2.2vw,34px);border:3px solid var(--nd-black);background:var(--nd-white)}
.nd-contact-page__title{margin:0!important;padding:0!important;color:var(--nd-black)!important;background:transparent!important;font-size:clamp(38px,3.8vw,56px)!important;font-weight:700!important;line-height:1.1!important;letter-spacing:-.05em!important}
.nd-contact-page__lead{width:min(100%,760px);margin-top:clamp(54px,5vw,72px)}
.nd-contact-page__lead p{margin:0!important;padding:0!important;color:var(--nd-black)!important;font-size:clamp(15px,1.08vw,17px)!important;font-weight:400!important;line-height:1.9!important}
.nd-contact-page__lead p+p{margin-top:7px!important}

/* FORM SHELL */
.nd-contact-page__form-section,.nd-contact-page__form-entry,.nd-contact-page__form-entry .wpcf7{width:min(100%,var(--nd-form-max));max-width:100%}
.nd-contact-page__form-entry,.nd-contact-page__form-entry .wp-block-shortcode,.nd-contact-page__form-entry .wpcf7-form{margin:0!important}
.nd-contact-form,.nd-contact-form .wpcf7-form-control-wrap{display:block;width:100%}

/* ROW */
.nd-contact-field{display:grid;grid-template-columns:210px minmax(0,1fr);column-gap:clamp(36px,4vw,60px);align-items:start;width:100%;margin:0;padding:28px 0 30px;border-top:1px solid var(--nd-line)}
.nd-contact-field__label{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;margin:0;padding-top:17px;color:var(--nd-black);font-size:clamp(15px,1.08vw,17px)!important;font-weight:700!important;line-height:1.55!important}
.nd-contact-field--type .nd-contact-field__label{padding-top:18px}
.nd-contact-field__label label{margin:0;padding:0;color:inherit!important;font:inherit!important;cursor:pointer}
.nd-contact-required,.nd-contact-optional{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:4px 7px;font-size:12px!important;font-weight:700!important;line-height:1!important;letter-spacing:.04em}
.nd-contact-required{color:var(--nd-black);background:var(--nd-accent)}
.nd-contact-optional{padding-left:0;padding-right:0;color:var(--nd-gray);background:transparent}
.nd-contact-field__control{min-width:0;width:100%}

/* INPUTS */
html body .nd-contact-page .wpcf7 input[type=text],html body .nd-contact-page .wpcf7 input[type=email],html body .nd-contact-page .wpcf7 input[type=url],html body .nd-contact-page .wpcf7 textarea{display:block;width:100%!important;max-width:none!important;margin:0!important;border:1px solid var(--nd-line)!important;border-radius:0!important;color:var(--nd-black)!important;background:transparent!important;box-shadow:none!important;font-family:"IBM Plex Sans JP",sans-serif!important;font-size:clamp(15px,1.08vw,17px)!important;font-weight:400!important;transition:border-color 180ms ease,outline-color 180ms ease}
html body .nd-contact-page .wpcf7 input[type=text],html body .nd-contact-page .wpcf7 input[type=email],html body .nd-contact-page .wpcf7 input[type=url]{height:58px;min-height:58px;padding:0 18px!important}
html body .nd-contact-page .wpcf7 textarea{min-height:220px;padding:18px!important;line-height:1.75!important;resize:vertical}
html body .nd-contact-page .wpcf7 input::placeholder,html body .nd-contact-page .wpcf7 textarea::placeholder{color:#7A7D77!important;opacity:1}
html body .nd-contact-page .wpcf7 input[type=text]:focus-visible,html body .nd-contact-page .wpcf7 input[type=email]:focus-visible,html body .nd-contact-page .wpcf7 input[type=url]:focus-visible,html body .nd-contact-page .wpcf7 textarea:focus-visible{border-color:var(--nd-blue)!important;outline:1px solid var(--nd-blue);outline-offset:0}

/* RADIO TILES */
.nd-contact-type{display:grid!important;grid-template-columns:max-content max-content max-content;justify-content:start;gap:10px;width:100%;max-width:100%}
.nd-contact-type .wpcf7-list-item{display:block;min-width:0;margin:0!important;padding:0}
.nd-contact-type .wpcf7-list-item label{position:relative;display:block;width:100%;margin:0;padding:0;cursor:pointer}
.nd-contact-type input[type=radio]{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;opacity:0}
.nd-contact-type .wpcf7-list-item-label{display:flex;align-items:center;min-height:58px;width:max-content;max-width:100%;padding:14px 16px;border:1px solid var(--nd-black);color:var(--nd-black);background:transparent;font-size:clamp(13px,1vw,15px)!important;font-weight:600!important;line-height:1.45!important;text-align:left;white-space:nowrap;transition:background-color 180ms ease,border-color 180ms ease}
.nd-contact-type .wpcf7-list-item label:hover .wpcf7-list-item-label{border-color:var(--nd-accent)}
.nd-contact-type input[type=radio]:checked+.wpcf7-list-item-label{border-color:var(--nd-black);background:var(--nd-accent)}
.nd-contact-type input[type=radio]:focus-visible+.wpcf7-list-item-label{outline:2px solid var(--nd-blue);outline-offset:3px}

/* ACCEPTANCE */
.nd-contact-consent{width:100%;margin:0;padding:28px 0 0;border-top:1px solid var(--nd-line)}
.nd-contact-consent .wpcf7-acceptance,.nd-contact-consent .wpcf7-list-item{display:block}
.nd-contact-consent .wpcf7-list-item{margin:0!important}
.nd-contact-consent .wpcf7-list-item label{display:inline-flex;align-items:flex-start;gap:10px;margin:0;color:var(--nd-black);cursor:pointer;font-size:clamp(14px,1vw,15px)!important;line-height:1.7!important}
.nd-contact-consent input[type=checkbox]{flex:0 0 20px;width:20px;height:20px;margin:2px 0 0;accent-color:var(--nd-accent);cursor:pointer}
.nd-contact-consent input[type=checkbox]:focus-visible{outline:2px solid var(--nd-blue);outline-offset:3px}
.nd-contact-consent__note{margin:10px 0 0 30px!important;padding:0}
.nd-contact-consent__note a{color:var(--nd-black)!important;font-size:13px!important;line-height:1.6!important;text-decoration-line:underline!important;text-decoration-thickness:1px;text-underline-offset:4px}
.nd-contact-consent__note a:hover,.nd-contact-consent__note a:focus-visible{color:var(--nd-blue)!important}

/* TURNSTILE */
.nd-contact-turnstile{width:min(100%,420px);max-width:100%;margin-top:24px}
.nd-contact-turnstile .cf-turnstile{width:100%!important;max-width:100%}

/* CONFIRM STEP */
.nd-contact-edit[hidden],
.nd-contact-confirm[hidden]{display:none!important}

.nd-contact-confirm{
  width:100%;
  margin:0;
  padding:0;
}

.nd-contact-confirm__header{
  width:min(100%,760px);
  margin:0 0 clamp(34px,3.6vw,48px);
}

.nd-contact-confirm__eyebrow{
  margin:0 0 12px!important;
  padding:0!important;
  color:var(--nd-gray)!important;
  font-family:"Barlow Condensed",sans-serif!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.12em!important;
}

.nd-contact-confirm__title{
  margin:0!important;
  padding:0!important;
  color:var(--nd-black)!important;
  font-size:clamp(26px,2.2vw,34px)!important;
  font-weight:700!important;
  line-height:1.35!important;
  letter-spacing:-.035em!important;
  outline:none;
}

.nd-contact-confirm__title:focus-visible{
  outline:2px solid var(--nd-blue);
  outline-offset:5px;
}

.nd-contact-confirm__lead{
  margin:16px 0 0!important;
  padding:0!important;
  color:var(--nd-gray)!important;
  font-size:clamp(14px,1vw,15px)!important;
  line-height:1.8!important;
}

.nd-contact-confirm__list{
  width:100%;
  margin:0!important;
  padding:0!important;
}

.nd-contact-confirm__row{
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  column-gap:clamp(36px,4vw,60px);
  width:100%;
  margin:0;
  padding:24px 0 26px;
  border-top:1px solid var(--nd-line);
}

.nd-contact-confirm__row:last-child{
  border-bottom:1px solid var(--nd-line);
}

.nd-contact-confirm__row dt,
.nd-contact-confirm__row dd{
  margin:0!important;
  padding:0!important;
}

.nd-contact-confirm__row dt{
  color:var(--nd-black);
  font-size:clamp(15px,1.08vw,17px)!important;
  font-weight:700!important;
  line-height:1.65!important;
}

.nd-contact-confirm__row dd{
  min-width:0;
  overflow-wrap:anywhere;
  color:var(--nd-black);
  font-size:clamp(15px,1.08vw,17px)!important;
  font-weight:400!important;
  line-height:1.8!important;
  white-space:pre-wrap;
}

.nd-contact-confirm__actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  width:100%;
  margin-top:36px;
}

.nd-contact-confirm__back{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:0;
  padding:10px 0;
  border:0;
  border-bottom:1px solid var(--nd-black);
  border-radius:0;
  color:var(--nd-black);
  background:transparent;
  box-shadow:none;
  font-family:"IBM Plex Sans JP",sans-serif;
  font-size:13px;
  font-weight:700;
  line-height:1.4;
  cursor:pointer;
  transition:color 180ms ease,border-color 180ms ease;
}

.nd-contact-confirm__back:hover,
.nd-contact-confirm__back:focus-visible{
  color:var(--nd-blue);
  border-bottom-color:var(--nd-blue);
}

.nd-contact-confirm__back:focus-visible{
  outline:2px solid var(--nd-blue);
  outline-offset:5px;
}

/* 確認前の簡易チェック */
.nd-contact-precheck-error{
  display:block;
  margin:8px 0 0;
  color:var(--nd-error)!important;
  font-size:13px!important;
  font-weight:500!important;
  line-height:1.5!important;
}

.nd-contact-field.is-precheck-invalid input[type=text],
.nd-contact-field.is-precheck-invalid input[type=email],
.nd-contact-field.is-precheck-invalid input[type=url],
.nd-contact-field.is-precheck-invalid textarea{
  border-color:var(--nd-error)!important;
}

.nd-contact-field--type.is-precheck-invalid
.nd-contact-type .wpcf7-list-item-label{
  border-color:var(--nd-error);
}

.nd-contact-consent.is-precheck-invalid{
  color:var(--nd-error);
}

/* ==================================================
   ACTION BUTTON / v1.3.0
   - トップページ共通ボタンと同寸法
   - 新しい確認画面用マークアップに対応
   - 現在残っている旧CF7フォーム構造にも対応
   - SVGに依存せずCSSだけで矢印を描画
================================================== */

/* --------------------------------------------------
   共通の配置
-------------------------------------------------- */
.nd-contact-confirm-action,
.nd-contact-final-submit-area,
.nd-contact-submit-area{
  display:flex;
  justify-content:flex-end;
  width:100%;
}

.nd-contact-confirm-action,
.nd-contact-submit-area{
  margin-top:36px;
}

.nd-contact-final-submit-area{
  flex:0 1 410px;
  margin-left:auto;
}


/* --------------------------------------------------
   新確認ボタン本体
-------------------------------------------------- */
html body .nd-contact-page .nd-contact-action-button{
  --contact-button-max-width:410px;
  --contact-button-min-height:72px;
  --contact-button-arrow-width:64px;
  --contact-button-border-width:2px;
  --contact-button-font-size:14px;

  position:relative;
  isolation:isolate;

  display:grid!important;
  grid-template-columns:
    minmax(0,1fr)
    var(--contact-button-arrow-width);
  align-items:stretch;

  width:min(100%,var(--contact-button-max-width));
  min-height:var(--contact-button-min-height);

  margin:0!important;
  padding:0!important;

  overflow:hidden;

  border:
    var(--contact-button-border-width)
    solid var(--nd-black)
    !important;

  border-radius:0!important;

  color:var(--nd-black)!important;
  background:var(--nd-white)!important;

  box-shadow:none!important;
  text-decoration:none!important;

  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;

  transform:translate3d(0,0,0);

  transition:
    border-color 240ms ease,
    color 240ms ease,
    transform 160ms cubic-bezier(.22,1,.36,1);
}

html body .nd-contact-page .nd-contact-action-button::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;

  background:var(--nd-accent);

  transform:scaleX(0);
  transform-origin:left center;

  transition:
    transform 420ms cubic-bezier(.22,1,.36,1);
}

html body .nd-contact-page .nd-contact-action-button::after{
  content:none!important;
  display:none!important;
}

.nd-contact-action-button__label{
  position:relative;
  z-index:1;
  grid-column:1;

  display:flex;
  align-items:center;

  min-width:0;

  margin:0;
  padding:18px 24px;

  color:inherit!important;

  font-family:
    "IBM Plex Sans JP",
    sans-serif
    !important;

  font-size:14px!important;
  font-weight:700!important;
  line-height:1.4!important;
  letter-spacing:.05em!important;

  text-align:left;
  white-space:normal;
}

.nd-contact-action-button__arrow{
  position:relative;
  z-index:1;
  grid-column:2;

  display:block;

  min-width:0;

  margin:0;
  padding:0;

  border:0;
  border-left:
    2px solid
    var(--nd-black);

  color:var(--nd-black);

  transform:translate3d(0,0,0);

  transition:
    transform 300ms cubic-bezier(.22,1,.36,1);
}


/* --------------------------------------------------
   矢印はCSSで描画
   SVGのfill競合による巨大三角形を根本的に防止
-------------------------------------------------- */
.nd-contact-action-button__arrow::before,
.nd-contact-submit-button__arrow::before{
  content:"";

  position:absolute;
  top:50%;
  left:50%;

  width:26px;
  height:2px;

  background:currentColor;

  transform:
    translate(-54%,-50%);
}

.nd-contact-action-button__arrow::after,
.nd-contact-submit-button__arrow::after{
  content:"";

  position:absolute;
  top:50%;
  left:50%;

  width:10px;
  height:10px;

  border-top:2px solid currentColor;
  border-right:2px solid currentColor;

  transform:
    translate(4px,-50%)
    rotate(45deg);
}


/*
 * 新旧どちらのフォームにSVGが残っていても、
 * CSS描画矢印を使用するためSVG自体は非表示。
 */
.nd-contact-action-button__arrow-icon,
.nd-contact-submit-button__arrow-icon{
  display:none!important;
  width:0!important;
  height:0!important;
  fill:none!important;
  stroke:none!important;
}


/* --------------------------------------------------
   新しい最終送信ボタン
-------------------------------------------------- */
html body
.nd-contact-page
.wpcf7
.nd-contact-action-button--submit
input.nd-contact-submit{
  position:relative;
  z-index:1;

  grid-column:1;
  grid-row:1;

  align-self:stretch;

  display:block;

  width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:68px;

  margin:0!important;
  padding:18px 24px!important;

  border:0!important;
  border-radius:0!important;

  color:var(--nd-black)!important;
  background:transparent!important;

  box-shadow:none!important;

  font-family:
    "IBM Plex Sans JP",
    sans-serif
    !important;

  font-size:14px!important;
  font-weight:700!important;
  line-height:1.4!important;
  letter-spacing:.05em!important;

  text-align:left!important;
  white-space:normal;

  cursor:pointer;

  appearance:none;
  -webkit-appearance:none;
}


/* --------------------------------------------------
   旧CF7フォーム互換
   現在の画面で使われている
   .nd-contact-submit-button を完全に整形する。
-------------------------------------------------- */
html body .nd-contact-page .nd-contact-submit-button{
  --contact-button-max-width:410px;
  --contact-button-min-height:72px;
  --contact-button-arrow-width:64px;
  --contact-button-border-width:2px;

  position:relative;
  isolation:isolate;

  display:grid!important;
  grid-template-columns:
    minmax(0,1fr)
    var(--contact-button-arrow-width);
  align-items:stretch;

  width:min(100%,var(--contact-button-max-width))!important;
  min-height:var(--contact-button-min-height)!important;

  margin:0!important;
  padding:0!important;

  overflow:hidden!important;

  border:
    var(--contact-button-border-width)
    solid var(--nd-black)
    !important;

  border-radius:0!important;

  color:var(--nd-black)!important;
  background:var(--nd-white)!important;

  box-shadow:none!important;

  transform:translate3d(0,0,0);

  transition:
    border-color 240ms ease,
    color 240ms ease,
    transform 160ms cubic-bezier(.22,1,.36,1);
}

html body .nd-contact-page .nd-contact-submit-button::before{
  content:"";

  position:absolute;
  z-index:0;
  inset:0;

  display:block!important;

  background:var(--nd-accent);

  transform:scaleX(0);
  transform-origin:left center;

  transition:
    transform 420ms cubic-bezier(.22,1,.36,1);
}

html body .nd-contact-page .nd-contact-submit-button::after{
  content:none!important;
  display:none!important;
}

html body
.nd-contact-page
.wpcf7
.nd-contact-submit-button
input.nd-contact-submit{
  position:relative;
  z-index:1;

  grid-column:1;
  grid-row:1;

  align-self:stretch;

  display:block!important;

  width:100%!important;
  min-width:0!important;
  max-width:none!important;

  height:auto!important;
  min-height:68px!important;

  margin:0!important;
  padding:18px 24px!important;

  border:0!important;
  border-radius:0!important;

  color:var(--nd-black)!important;
  background:transparent!important;

  box-shadow:none!important;

  font-family:
    "IBM Plex Sans JP",
    sans-serif
    !important;

  font-size:14px!important;
  font-weight:700!important;
  line-height:1.4!important;
  letter-spacing:.05em!important;

  text-align:left!important;

  cursor:pointer;

  appearance:none!important;
  -webkit-appearance:none!important;
}

.nd-contact-submit-button__arrow{
  position:relative!important;
  z-index:1!important;

  grid-column:2!important;
  grid-row:1!important;

  top:auto!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;

  display:block!important;

  width:auto!important;
  min-width:0!important;
  height:auto!important;

  margin:0!important;
  padding:0!important;

  border:0!important;
  border-left:
    2px solid
    var(--nd-black)
    !important;

  color:var(--nd-black)!important;

  pointer-events:none;

  transform:translate3d(0,0,0)!important;

  transition:
    transform 300ms cubic-bezier(.22,1,.36,1)
    !important;
}


/* --------------------------------------------------
   hover / focus
-------------------------------------------------- */
html body .nd-contact-page .nd-contact-action-button:hover::before,
html body .nd-contact-page .nd-contact-action-button:focus-visible::before,
html body .nd-contact-page .nd-contact-action-button:focus-within::before,
html body .nd-contact-page .nd-contact-submit-button:hover::before,
html body .nd-contact-page .nd-contact-submit-button:focus-within::before{
  transform:scaleX(1);
}

html body .nd-contact-page .nd-contact-action-button:hover
.nd-contact-action-button__arrow,
html body .nd-contact-page .nd-contact-action-button:focus-visible
.nd-contact-action-button__arrow,
html body .nd-contact-page .nd-contact-action-button:focus-within
.nd-contact-action-button__arrow,
html body .nd-contact-page .nd-contact-submit-button:hover
.nd-contact-submit-button__arrow,
html body .nd-contact-page .nd-contact-submit-button:focus-within
.nd-contact-submit-button__arrow{
  transform:translate3d(5px,0,0)!important;
}

html body .nd-contact-page button.nd-contact-action-button:focus-visible,
html body .nd-contact-page .nd-contact-action-button--submit:focus-within,
html body .nd-contact-page .nd-contact-submit-button:focus-within{
  outline:
    2px solid
    var(--nd-blue);

  outline-offset:5px;
}

html body .nd-contact-page .nd-contact-action-button:active,
html body .nd-contact-page .nd-contact-submit-button:active{
  transform:scale(.985);
  transition-duration:70ms;
}

html body
.nd-contact-page
.wpcf7
input.nd-contact-submit:focus{
  outline:none!important;
}

html body
.nd-contact-page
.wpcf7
input.nd-contact-submit:disabled{
  cursor:wait;
  opacity:.58;
}


/* --------------------------------------------------
   CF7 spinner
-------------------------------------------------- */
.nd-contact-action-button--submit .wpcf7-spinner,
.nd-contact-submit-button .wpcf7-spinner{
  position:absolute!important;
  z-index:3;

  top:50%;
  right:74px;

  margin:0!important;

  transform:
    translateY(-50%);
}

/* VALIDATION */
html body .nd-contact-page .wpcf7 .wpcf7-not-valid{border-color:var(--nd-error)!important}
html body .nd-contact-page .wpcf7 .wpcf7-not-valid:focus-visible{border-color:var(--nd-blue)!important}
.nd-contact-page .wpcf7-not-valid-tip{display:block;margin-top:8px;color:var(--nd-error)!important;font-size:13px!important;font-weight:500!important;line-height:1.5!important}

/* RESPONSE */
.nd-contact-page .wpcf7 form .wpcf7-response-output{margin:28px 0 0!important;padding:16px 18px!important;border:0!important;border-left:3px solid var(--nd-error)!important;color:var(--nd-black)!important;background:transparent!important;font-size:14px!important;font-weight:500!important;line-height:1.7!important}
.nd-contact-page .wpcf7 form.init .wpcf7-response-output{display:none}
.nd-contact-page .wpcf7 form.sent .wpcf7-response-output{margin-top:32px!important;padding:22px 0 22px 20px!important;border-left-width:4px!important;border-left-color:var(--nd-accent)!important;font-size:15px!important;line-height:1.8!important}
.nd-contact-page .wpcf7 form.failed .wpcf7-response-output,.nd-contact-page .wpcf7 form.aborted .wpcf7-response-output,.nd-contact-page .wpcf7 form.spam .wpcf7-response-output,.nd-contact-page .wpcf7 form.invalid .wpcf7-response-output,.nd-contact-page .wpcf7 form.unaccepted .wpcf7-response-output{border-left-color:var(--nd-error)!important}

@media(max-width:959px){
  .nd-contact-page{display:block;width:100%}.nd-contact-page__rail{display:none}
  .nd-contact-page__inner{width:100%;padding:clamp(82px,9vw,96px) clamp(42px,7.5vw,72px) clamp(110px,13vw,146px)}
  .nd-contact-page__content{width:100%;max-width:none;margin:0}.nd-contact-page__breadcrumb{margin-bottom:clamp(52px,6.5vw,68px)}
  .nd-contact-page__heading-frame{width:min(100%,560px);min-height:76px;padding:16px clamp(20px,3vw,28px);border-width:3px}
  .nd-contact-page__title{font-size:clamp(34px,5vw,44px)!important}.nd-contact-page__lead{width:min(100%,680px);margin-top:clamp(46px,6vw,60px)}
  .nd-contact-page__lead p{font-size:clamp(15px,1.7vw,17px)!important}.nd-contact-page__header{margin-bottom:clamp(54px,7vw,70px)}
  .nd-contact-page__form-section,.nd-contact-page__form-entry,.nd-contact-page__form-entry .wpcf7{width:100%}
  .nd-contact-field{grid-template-columns:170px minmax(0,1fr);column-gap:clamp(26px,4vw,38px);padding:26px 0 28px}
  .nd-contact-field__label{padding-top:17px;font-size:clamp(15px,1.7vw,16px)!important}.nd-contact-type{gap:8px}.nd-contact-type .wpcf7-list-item-label{min-height:62px;padding:13px 14px}
  html body .nd-contact-page .wpcf7 input[type=text],html body .nd-contact-page .wpcf7 input[type=email],html body .nd-contact-page .wpcf7 input[type=url],html body .nd-contact-page .wpcf7 textarea{font-size:16px!important}
  html body .nd-contact-page .wpcf7 input[type=text],html body .nd-contact-page .wpcf7 input[type=email],html body .nd-contact-page .wpcf7 input[type=url]{padding:0 16px!important}
  html body .nd-contact-page .wpcf7 textarea{min-height:210px;padding:17px!important}.nd-contact-consent{padding-top:26px}
  .nd-contact-confirm__row{grid-template-columns:170px minmax(0,1fr);column-gap:clamp(26px,4vw,38px)}
  .nd-contact-confirm__actions{gap:24px}
}

@media(max-width:767px){
  .nd-contact-page__inner{padding:76px clamp(22px,6vw,38px) 96px}.nd-contact-page__breadcrumb{margin-bottom:42px}.nd-contact-page__breadcrumb-list{gap:7px;font-size:13px!important}
  .nd-contact-page__heading-frame{width:100%;min-height:68px;padding:14px 18px;border-width:2px}.nd-contact-page__title{font-size:clamp(30px,8vw,34px)!important;line-height:1.15!important}
  .nd-contact-page__lead{width:100%;margin-top:38px}.nd-contact-page__lead p{font-size:15px!important;line-height:1.85!important}.nd-contact-page__header{margin-bottom:48px}
  .nd-contact-field{display:block;padding:24px 0 26px}.nd-contact-field__label,.nd-contact-field--type .nd-contact-field__label{min-height:22px;margin-bottom:12px;padding-top:0;font-size:15px!important}
  .nd-contact-required,.nd-contact-optional{min-height:22px;font-size:11px!important}.nd-contact-required{padding:3px 6px 4px}
  .nd-contact-type{grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:8px}.nd-contact-type .wpcf7-list-item{width:100%}.nd-contact-type .wpcf7-list-item-label{width:100%;min-height:54px;padding:13px 14px;font-size:14px!important}
  html body .nd-contact-page .wpcf7 input[type=text],html body .nd-contact-page .wpcf7 input[type=email],html body .nd-contact-page .wpcf7 input[type=url]{height:54px;min-height:54px;padding:0 14px!important;font-size:16px!important}
  html body .nd-contact-page .wpcf7 textarea{min-height:180px;padding:15px!important;font-size:16px!important;line-height:1.7!important}
  .nd-contact-consent{padding-top:24px}.nd-contact-consent .wpcf7-list-item label{gap:10px;font-size:14px!important;line-height:1.7!important}.nd-contact-consent input[type=checkbox]{flex-basis:22px;width:22px;height:22px}.nd-contact-consent__note{margin-left:32px!important}
  .nd-contact-turnstile{width:100%;margin-top:22px}
  .nd-contact-confirm-action{margin-top:32px}
  .nd-contact-confirm-action .nd-contact-action-button,.nd-contact-final-submit-area .nd-contact-action-button{width:100%;max-width:none}
  .nd-contact-confirm__header{margin-bottom:30px}
  .nd-contact-confirm__title{font-size:26px!important}
  .nd-contact-confirm__row{display:block;padding:20px 0 22px}
  .nd-contact-confirm__row dt{margin-bottom:9px!important;font-size:15px!important}
  .nd-contact-confirm__row dd{font-size:15px!important;line-height:1.75!important}
  .nd-contact-confirm__actions{display:flex;flex-direction:column-reverse;align-items:stretch;gap:22px;margin-top:30px}
  .nd-contact-confirm__back{align-self:flex-start}
  .nd-contact-final-submit-area{flex:0 0 auto;width:100%;margin-left:0}
  html body .nd-contact-page .nd-contact-action-button{--contact-button-max-width:100%;--contact-button-min-height:66px;--contact-button-arrow-width:58px;--contact-button-font-size:13px;width:100%}.nd-contact-action-button__label{padding:16px 18px}.nd-contact-action-button__arrow-icon{width:26px;height:16px}html body .nd-contact-page .wpcf7 .nd-contact-action-button--submit input.nd-contact-submit{min-height:62px;padding:16px 18px!important;font-size:13px!important}
  .nd-contact-page .wpcf7-not-valid-tip{margin-top:7px;font-size:13px!important;line-height:1.55!important}
  .nd-contact-page .wpcf7 form .wpcf7-response-output{margin-top:24px!important;padding:14px 0 14px 15px!important;font-size:14px!important;line-height:1.65!important}
  .nd-contact-page .wpcf7 form.sent .wpcf7-response-output{margin-top:28px!important;padding:18px 0 18px 16px!important;font-size:14px!important;line-height:1.75!important}
}

@media(max-width:359px){.nd-contact-turnstile{width:calc(100% + 24px);max-width:none;margin-left:-12px}}
@media(prefers-reduced-motion:reduce){.nd-contact-page input,.nd-contact-page textarea,.nd-contact-type .wpcf7-list-item-label,.nd-contact-page .nd-contact-action-button,.nd-contact-page .nd-contact-action-button::before,.nd-contact-page .nd-contact-action-button__arrow,.nd-contact-confirm__back{transition:none!important}}


/* ==================================================
   v1.3.0 FINAL OVERRIDES
================================================== */
@media (max-width:959px){
  .nd-contact-page{
    --nd-rail-width:
      clamp(156px,10.8vw,210px);
  }
}

@media (max-width:767px){
  html body .nd-contact-page .nd-contact-action-button,
  html body .nd-contact-page .nd-contact-submit-button{
    --contact-button-max-width:100%;
    --contact-button-min-height:66px;
    --contact-button-arrow-width:58px;

    width:100%!important;
    min-height:66px!important;
  }

  .nd-contact-action-button__label{
    padding:16px 18px;
    font-size:13px!important;
  }

  html body
  .nd-contact-page
  .wpcf7
  .nd-contact-action-button--submit
  input.nd-contact-submit,

  html body
  .nd-contact-page
  .wpcf7
  .nd-contact-submit-button
  input.nd-contact-submit{
    min-height:62px!important;
    padding:16px 18px!important;
    font-size:13px!important;
  }

  .nd-contact-action-button__arrow::before,
  .nd-contact-submit-button__arrow::before{
    width:24px;
  }

  .nd-contact-final-submit-area,
  .nd-contact-submit-area{
    width:100%;
  }
}

@media (prefers-reduced-motion:reduce){
  .nd-contact-action-button,
  .nd-contact-action-button::before,
  .nd-contact-action-button__arrow,
  .nd-contact-submit-button,
  .nd-contact-submit-button::before,
  .nd-contact-submit-button__arrow{
    transition:none!important;
  }
}


/* ==========================================================
   CONTACT PAGE v1.4.0 / AUTHORITATIVE FINAL ALIGNMENT
========================================================== */

/* ==========================================================
   A. PC PAGE SHELL
   WORKS / SERVICE と同じfull-bleed骨格
========================================================== */
@media (min-width:960px){

  body.noya-contact-page-active #content,
  body.noya-contact-page-active .l-content,
  body.noya-contact-page-active .l-mainContent,
  body.noya-contact-page-active .l-mainContent__inner,
  body.noya-contact-page-active .post_content{
    width:100%!important;
    max-width:none!important;
    margin-top:0!important;
    padding-top:0!important;
  }

  html body .nd-contact-page{
    --nd-page-edge:clamp(18px,2.2vw,38px);
    --nd-rail-width:clamp(156px,10.8vw,210px);
    --nd-content-gap:clamp(36px,5vw,90px);
    --nd-rail-sticky-top:clamp(170px,28vh,290px);

    display:grid!important;

    grid-template-columns:
      var(--nd-page-edge)
      var(--nd-rail-width)
      minmax(0,1fr)
      !important;

    width:100vw!important;
    max-width:100vw!important;

    margin:
      0
      0
      0
      calc(50% - 50vw)
      !important;
  }

  html body .nd-contact-page__rail{
    grid-column:2!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
  }

  html body .nd-contact-page__rail-label{
    margin:0!important;
    padding:0!important;

    font-family:
      "Barlow Condensed",
      sans-serif
      !important;

    font-size:
      clamp(82px,6vw,104px)
      !important;

    font-weight:
      600
      !important;

    line-height:
      .9
      !important;

    letter-spacing:
      .08em
      !important;
  }
}


/* ==========================================================
   B. REQUIRED / OPTIONAL
   項目名と同じbox高へ固定
========================================================== */
html body .nd-contact-page .nd-contact-field__label{
  align-items:center!important;

  line-height:
    24px
    !important;
}

html body .nd-contact-page .nd-contact-field__label > label,
html body .nd-contact-page .nd-contact-field__label-text{
  display:inline-flex!important;
  align-items:center!important;

  box-sizing:border-box!important;

  height:24px!important;
  min-height:24px!important;
  max-height:24px!important;

  margin:0!important;
  padding:0!important;

  line-height:
    24px
    !important;
}

html body .nd-contact-page .nd-contact-required,
html body .nd-contact-page .nd-contact-optional{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:center!important;

  box-sizing:border-box!important;

  height:24px!important;
  min-height:24px!important;
  max-height:24px!important;

  margin:0!important;

  line-height:
    1
    !important;

  vertical-align:middle!important;
  transform:none!important;
}

html body .nd-contact-page .nd-contact-required{
  padding:
    0
    7px
    !important;
}

html body .nd-contact-page .nd-contact-optional{
  padding:
    0
    !important;
}


/* ==========================================================
   C. ACTION BUTTON
   共通PC寸法:
   outer 410 × 72
   inner 346 + 64 × 68
   border 2
========================================================== */
html body .nd-contact-page .nd-contact-action-button,
html body .nd-contact-page .nd-contact-submit-button{
  --contact-button-max-width:410px;
  --contact-button-height:72px;
  --contact-button-inner-height:68px;
  --contact-button-arrow-width:64px;
  --contact-button-border-width:2px;

  position:relative!important;
  isolation:isolate!important;

  display:grid!important;

  grid-template-columns:
    minmax(0,1fr)
    var(--contact-button-arrow-width)
    !important;

  grid-template-rows:
    var(--contact-button-inner-height)
    !important;

  align-items:stretch!important;

  box-sizing:border-box!important;

  width:
    min(100%,var(--contact-button-max-width))
    !important;

  max-width:
    var(--contact-button-max-width)
    !important;

  height:
    var(--contact-button-height)
    !important;

  min-height:
    var(--contact-button-height)
    !important;

  max-height:
    var(--contact-button-height)
    !important;

  margin:0!important;
  padding:0!important;

  overflow:hidden!important;

  border:
    var(--contact-button-border-width)
    solid
    var(--nd-black)
    !important;

  border-radius:0!important;
}


/* 初期確認ボタンの文字領域 */
html body .nd-contact-page .nd-contact-action-button__label{
  position:relative!important;
  z-index:1!important;

  grid-column:
    1
    !important;

  grid-row:
    1
    !important;

  display:flex!important;
  align-items:center!important;

  box-sizing:border-box!important;

  width:100%!important;
  min-width:0!important;

  height:
    var(--contact-button-inner-height)
    !important;

  min-height:
    var(--contact-button-inner-height)
    !important;

  max-height:
    var(--contact-button-inner-height)
    !important;

  margin:0!important;

  padding:
    18px
    24px
    !important;

  font-size:
    14px
    !important;

  font-weight:
    700
    !important;

  line-height:
    1.4
    !important;
}


/* 矢印領域 */
html body .nd-contact-page .nd-contact-action-button__arrow,
html body .nd-contact-page .nd-contact-submit-button__arrow{
  position:relative!important;
  z-index:1!important;

  grid-column:
    2
    !important;

  grid-row:
    1
    !important;

  display:block!important;

  box-sizing:border-box!important;

  width:
    var(--contact-button-arrow-width)
    !important;

  min-width:
    var(--contact-button-arrow-width)
    !important;

  max-width:
    var(--contact-button-arrow-width)
    !important;

  height:
    var(--contact-button-inner-height)
    !important;

  min-height:
    var(--contact-button-inner-height)
    !important;

  max-height:
    var(--contact-button-inner-height)
    !important;

  margin:0!important;
  padding:0!important;

  border:0!important;

  border-left:
    var(--contact-button-border-width)
    solid
    var(--nd-black)
    !important;
}


/* 確認画面の最終送信input */
html body
.nd-contact-page
.wpcf7
.nd-contact-action-button--submit
input.nd-contact-submit,

html body
.nd-contact-page
.wpcf7
.nd-contact-submit-button
input.nd-contact-submit{
  position:relative!important;
  z-index:1!important;

  grid-column:
    1
    !important;

  grid-row:
    1
    !important;

  display:block!important;

  box-sizing:border-box!important;

  width:100%!important;
  min-width:0!important;
  max-width:none!important;

  height:
    var(--contact-button-inner-height)
    !important;

  min-height:
    var(--contact-button-inner-height)
    !important;

  max-height:
    var(--contact-button-inner-height)
    !important;

  margin:0!important;

  padding:
    18px
    24px
    !important;

  border:0!important;
  border-radius:0!important;

  font-size:
    14px
    !important;

  font-weight:
    700
    !important;

  line-height:
    1.4
    !important;
}


/* 確認画面右側の予約幅も410px */
.nd-contact-final-submit-area{
  flex:
    0
    0
    410px
    !important;

  width:
    410px
    !important;

  max-width:
    410px
    !important;
}


/* ==========================================================
   D. TABLET
========================================================== */
@media (max-width:959px){

  html body .nd-contact-page{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
  }

}


/* ==========================================================
   E. MOBILE
   outer 100% × 66
   inner 58px arrow / 62px high
========================================================== */
@media (max-width:767px){

  html body .nd-contact-page .nd-contact-field__label > label,
  html body .nd-contact-page .nd-contact-field__label-text{
    height:22px!important;
    min-height:22px!important;
    max-height:22px!important;

    line-height:
      22px
      !important;
  }

  html body .nd-contact-page .nd-contact-required,
  html body .nd-contact-page .nd-contact-optional{
    height:22px!important;
    min-height:22px!important;
    max-height:22px!important;
  }

  html body .nd-contact-page .nd-contact-required{
    padding:
      0
      6px
      !important;
  }


  html body .nd-contact-page .nd-contact-action-button,
  html body .nd-contact-page .nd-contact-submit-button{
    --contact-button-max-width:100%;
    --contact-button-height:66px;
    --contact-button-inner-height:62px;
    --contact-button-arrow-width:58px;

    width:100%!important;
    max-width:none!important;

    height:66px!important;
    min-height:66px!important;
    max-height:66px!important;

    grid-template-rows:
      62px
      !important;
  }

  html body .nd-contact-page .nd-contact-action-button__label{
    height:62px!important;
    min-height:62px!important;
    max-height:62px!important;

    padding:
      16px
      18px
      !important;

    font-size:
      13px
      !important;
  }

  html body
  .nd-contact-page
  .wpcf7
  .nd-contact-action-button--submit
  input.nd-contact-submit,

  html body
  .nd-contact-page
  .wpcf7
  .nd-contact-submit-button
  input.nd-contact-submit{
    height:62px!important;
    min-height:62px!important;
    max-height:62px!important;

    padding:
      16px
      18px
      !important;

    font-size:
      13px
      !important;
  }

  html body .nd-contact-page .nd-contact-action-button__arrow,
  html body .nd-contact-page .nd-contact-submit-button__arrow{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;

    height:62px!important;
    min-height:62px!important;
    max-height:62px!important;
  }

  .nd-contact-final-submit-area{
    flex:
      0
      0
      auto
      !important;

    width:100%!important;
    max-width:none!important;

    margin-left:0!important;
  }
}


/* ==========================================================
   F. SWELL標準パンくず非表示
========================================================== */
body.noya-contact-page-active .p-breadcrumb,
body.noya-contact-page-active .c-breadcrumb,
body.noya-contact-page-active #breadcrumb,
body.noya-contact-page-active .l-breadcrumb,
body.noya-contact-page-active .p-breadcrumb__list{
  display:none!important;
}


/* ==========================================================
   CONTACT PAGE v1.5.0 / FINAL VISUAL ALIGNMENT
   2026-08-19
========================================================== */


/* ==========================================================
   1. PAGE HEADING
   WORKS / SERVICE の現行値と完全一致
========================================================== */

html body .nd-contact-page__header{
  margin:
    0
    0
    clamp(72px,6.4vw,96px)
    !important;
}


html body .nd-contact-page__heading-frame{
  display:flex!important;
  align-items:center!important;

  width:
    min(100%,620px)
    !important;

  min-height:
    78px
    !important;

  margin:
    0
    0
    26px
    !important;

  padding:
    16px
    clamp(22px,2vw,30px)
    !important;

  border:
    3px solid
    var(--nd-black)
    !important;

  background:
    var(--nd-white)
    !important;
}


html body .nd-contact-page__title{
  margin:
    0
    !important;

  padding:
    0
    !important;

  font-size:
    clamp(36px,3.35vw,54px)
    !important;

  font-weight:
    700
    !important;

  line-height:
    1.08
    !important;

  letter-spacing:
    -.05em
    !important;
}


html body .nd-contact-page__lead{
  width:
    min(100%,760px)
    !important;

  margin-top:
    0
    !important;
}


/* ==========================================================
   2. FIELD LABEL + REQUIRED / OPTIONAL
========================================================== */

html body .nd-contact-page .nd-contact-field__label,
html body .nd-contact-page .nd-contact-field--type .nd-contact-field__label{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:center!important;

  gap:
    8px
    10px
    !important;

  min-height:
    58px
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  line-height:
    1.4
    !important;
}


html body .nd-contact-page .nd-contact-field__label > label,
html body .nd-contact-page .nd-contact-field__label-text{
  display:inline-flex!important;
  align-items:center!important;

  width:auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  font-size:
    inherit
    !important;

  font-weight:
    700
    !important;

  line-height:
    1.4
    !important;

  white-space:
    nowrap;
}


html body .nd-contact-page .nd-contact-required,
html body .nd-contact-page .nd-contact-optional{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:center!important;

  box-sizing:
    border-box
    !important;

  width:
    auto
    !important;

  height:
    22px
    !important;

  min-height:
    22px
    !important;

  max-height:
    22px
    !important;

  margin:
    0
    !important;

  padding:
    0
    7px
    !important;

  font-size:
    12px
    !important;

  font-weight:
    700
    !important;

  line-height:
    1
    !important;

  letter-spacing:
    .04em
    !important;

  transform:
    translateY(1px)
    !important;
}


html body .nd-contact-page .nd-contact-optional{
  padding:
    0
    !important;

  color:
    var(--nd-gray)
    !important;
}


/* textarea行も上部58pxの中で中央揃え */
html body .nd-contact-page .nd-contact-field--message .nd-contact-field__label{
  align-self:
    start
    !important;
}


/* ==========================================================
   3. CONSENT / PRIVACY / TURNSTILE AREA
========================================================== */

html body .nd-contact-page .nd-contact-consent{
  width:
    100%
    !important;

  margin:
    0
    !important;

  padding:
    26px
    0
    0
    !important;

  border-top:
    1px solid
    var(--nd-line)
    !important;
}


html body
.nd-contact-page
.nd-contact-consent
.wpcf7-list-item
label{
  display:inline-flex!important;
  align-items:center!important;

  gap:
    12px
    !important;

  margin:
    0
    !important;

  color:
    var(--nd-black)
    !important;

  font-size:
    clamp(15px,1.08vw,17px)
    !important;

  font-weight:
    500
    !important;

  line-height:
    1.7
    !important;
}


html body
.nd-contact-page
.nd-contact-consent
input[type="checkbox"]{
  flex:
    0
    0
    22px
    !important;

  width:
    22px
    !important;

  height:
    22px
    !important;

  margin:
    0
    !important;
}


html body .nd-contact-page .nd-contact-consent__note{
  margin:
    8px
    0
    0
    34px
    !important;

  padding:
    0
    !important;
}


html body .nd-contact-page .nd-contact-consent__note a{
  font-size:
    clamp(14px,1vw,15px)
    !important;

  font-weight:
    500
    !important;

  line-height:
    1.6
    !important;
}


/*
 * Turnstile + 確認ボタンを同一行へ。
 * CF7 v1.5.0のfooter wrapperに対応。
 */
html body .nd-contact-page .nd-contact-form-footer{
  display:grid!important;

  grid-template-columns:
    minmax(300px,1fr)
    410px
    !important;

  column-gap:
    clamp(28px,4vw,56px)
    !important;

  align-items:
    end
    !important;

  width:
    100%
    !important;

  margin-top:
    24px
    !important;
}


html body .nd-contact-page .nd-contact-turnstile{
  align-self:
    end
    !important;

  width:
    min(100%,320px)
    !important;

  margin:
    0
    !important;
}


html body .nd-contact-page .nd-contact-confirm-action{
  justify-self:
    end
    !important;

  align-self:
    end
    !important;

  display:block!important;

  width:
    410px
    !important;

  max-width:
    410px
    !important;

  margin:
    0
    !important;
}


/* ==========================================================
   4. ACTION BUTTONS
   PCは全て410×72pxで統一
========================================================== */

html body .nd-contact-page .nd-contact-action-button,
html body .nd-contact-page .nd-contact-submit-button{
  width:
    410px
    !important;

  min-width:
    410px
    !important;

  max-width:
    410px
    !important;

  height:
    72px
    !important;

  min-height:
    72px
    !important;

  max-height:
    72px
    !important;
}


/* ==========================================================
   5. CONFIRM ACTIONS
   修正ボタンも送信ボタンと同サイズ
========================================================== */

html body .nd-contact-page .nd-contact-confirm__actions{
  display:grid!important;

  grid-template-columns:
    410px
    410px
    !important;

  justify-content:
    space-between
    !important;

  align-items:
    center
    !important;

  gap:
    28px
    !important;

  width:
    100%
    !important;

  margin-top:
    36px
    !important;
}


html body .nd-contact-page .nd-contact-confirm__back{
  position:relative!important;
  isolation:isolate!important;

  display:grid!important;

  grid-template-columns:
    minmax(0,1fr)
    64px
    !important;

  grid-template-rows:
    68px
    !important;

  align-items:
    stretch
    !important;

  box-sizing:
    border-box
    !important;

  width:
    410px
    !important;

  min-width:
    410px
    !important;

  max-width:
    410px
    !important;

  height:
    72px
    !important;

  min-height:
    72px
    !important;

  max-height:
    72px
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  overflow:
    hidden
    !important;

  border:
    2px solid
    var(--nd-black)
    !important;

  border-radius:
    0
    !important;

  color:
    var(--nd-white)
    !important;

  background:
    var(--nd-black)
    !important;

  box-shadow:
    none
    !important;

  text-decoration:
    none
    !important;

  cursor:
    pointer;

  transform:
    none
    !important;
}


html body .nd-contact-page .nd-contact-confirm__back::before{
  content:"";

  position:absolute;
  z-index:0;
  inset:0;

  background:
    var(--nd-white);

  transform:
    scaleX(0);

  transform-origin:
    left center;

  transition:
    transform
    420ms
    cubic-bezier(.22,1,.36,1);
}


html body .nd-contact-page .nd-contact-confirm__back:hover::before,
html body .nd-contact-page .nd-contact-confirm__back:focus-visible::before{
  transform:
    scaleX(1);
}


html body .nd-contact-page .nd-contact-confirm__back-label{
  position:relative;
  z-index:1;

  grid-column:
    1;

  grid-row:
    1;

  display:flex;
  align-items:center;

  box-sizing:
    border-box;

  width:
    100%;

  height:
    68px;

  margin:
    0;

  padding:
    18px
    24px;

  color:
    inherit;

  font-family:
    "IBM Plex Sans JP",
    sans-serif;

  font-size:
    14px;

  font-weight:
    700;

  line-height:
    1.4;

  letter-spacing:
    .05em;

  text-align:
    left;
}


html body .nd-contact-page .nd-contact-confirm__back-arrow{
  position:relative;
  z-index:1;

  grid-column:
    2;

  grid-row:
    1;

  display:block;

  box-sizing:
    border-box;

  width:
    64px;

  height:
    68px;

  border-left:
    2px solid
    var(--nd-white);

  color:
    var(--nd-white);

  transition:
    color 240ms ease,
    border-color 240ms ease,
    transform 300ms cubic-bezier(.22,1,.36,1);
}


html body .nd-contact-page .nd-contact-confirm__back-arrow::before{
  content:"";

  position:absolute;

  top:
    50%;

  left:
    50%;

  width:
    26px;

  height:
    2px;

  background:
    currentColor;

  transform:
    translate(-46%,-50%);
}


html body .nd-contact-page .nd-contact-confirm__back-arrow::after{
  content:"";

  position:absolute;

  top:
    50%;

  left:
    50%;

  width:
    10px;

  height:
    10px;

  border-top:
    2px solid
    currentColor;

  border-right:
    2px solid
    currentColor;

  transform:
    translate(-12px,-50%)
    rotate(225deg);
}


html body .nd-contact-page .nd-contact-confirm__back:hover,
html body .nd-contact-page .nd-contact-confirm__back:focus-visible{
  color:
    var(--nd-black)
    !important;
}


html body
.nd-contact-page
.nd-contact-confirm__back:hover
.nd-contact-confirm__back-arrow,

html body
.nd-contact-page
.nd-contact-confirm__back:focus-visible
.nd-contact-confirm__back-arrow{
  color:
    var(--nd-black);

  border-left-color:
    var(--nd-black);

  transform:
    translate3d(-5px,0,0);
}


/* 最終送信側も410pxを明示 */
html body .nd-contact-page .nd-contact-final-submit-area{
  justify-self:
    end
    !important;

  width:
    410px
    !important;

  min-width:
    410px
    !important;

  max-width:
    410px
    !important;
}


/* ==========================================================
   TABLET
========================================================== */

@media (max-width:959px){

  html body .nd-contact-page__heading-frame{
    width:
      min(100%,620px)
      !important;

    min-height:
      78px
      !important;

    padding:
      16px
      clamp(22px,2vw,30px)
      !important;

    border-width:
      3px
      !important;
  }


  html body .nd-contact-page__title{
    font-size:
      clamp(36px,3.35vw,54px)
      !important;
  }


  html body .nd-contact-page .nd-contact-form-footer{
    grid-template-columns:
      minmax(0,1fr)
      !important;

    row-gap:
      24px
      !important;
  }


  html body .nd-contact-page .nd-contact-confirm-action{
    justify-self:
      end
      !important;
  }


  html body .nd-contact-page .nd-contact-confirm__actions{
    grid-template-columns:
      minmax(0,1fr)
      !important;

    justify-items:
      end
      !important;

    gap:
      18px
      !important;
  }

}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width:767px){

  html body .nd-contact-page__heading-frame{
    min-height:
      68px
      !important;

    margin-bottom:
      26px
      !important;

    padding:
      14px
      18px
      !important;

    border-width:
      2px
      !important;
  }


  html body .nd-contact-page__title{
    font-size:
      33px
      !important;

    line-height:
      1.08
      !important;
  }


  html body .nd-contact-page .nd-contact-field__label,
  html body .nd-contact-page .nd-contact-field--type .nd-contact-field__label{
    min-height:
      0
      !important;

    margin-bottom:
      12px
      !important;
  }


  html body .nd-contact-page .nd-contact-required,
  html body .nd-contact-page .nd-contact-optional{
    height:
      22px
      !important;

    min-height:
      22px
      !important;

    max-height:
      22px
      !important;

    font-size:
      11px
      !important;
  }


  html body
  .nd-contact-page
  .nd-contact-consent
  .wpcf7-list-item
  label{
    font-size:
      15px
      !important;
  }


  html body .nd-contact-page .nd-contact-consent__note a{
    font-size:
      14px
      !important;
  }


  html body .nd-contact-page .nd-contact-form-footer{
    grid-template-columns:
      minmax(0,1fr)
      !important;

    row-gap:
      22px
      !important;
  }


  html body .nd-contact-page .nd-contact-confirm-action,
  html body .nd-contact-page .nd-contact-final-submit-area,
  html body .nd-contact-page .nd-contact-confirm__back{
    width:
      100%
      !important;

    min-width:
      0
      !important;

    max-width:
      none
      !important;
  }


  html body .nd-contact-page .nd-contact-action-button,
  html body .nd-contact-page .nd-contact-submit-button,
  html body .nd-contact-page .nd-contact-confirm__back{
    width:
      100%
      !important;

    min-width:
      0
      !important;

    max-width:
      none
      !important;

    height:
      66px
      !important;

    min-height:
      66px
      !important;

    max-height:
      66px
      !important;
  }


  html body .nd-contact-page .nd-contact-confirm__back{
    grid-template-columns:
      minmax(0,1fr)
      58px
      !important;

    grid-template-rows:
      62px
      !important;
  }


  html body .nd-contact-page .nd-contact-confirm__back-label{
    height:
      62px;

    padding:
      16px
      18px;

    font-size:
      13px;
  }


  html body .nd-contact-page .nd-contact-confirm__back-arrow{
    width:
      58px;

    height:
      62px;
  }


  html body .nd-contact-page .nd-contact-confirm__actions{
    display:grid!important;

    grid-template-columns:
      minmax(0,1fr)
      !important;

    width:
      100%
      !important;

    gap:
      14px
      !important;
  }

}


/* ==========================================================
   CONTACT PAGE v1.6.0 / PRECISION FIX
   2026-08-19
========================================================== */


/* ==========================================================
   1. REQUIRED / OPTIONAL OPTICAL ALIGNMENT
========================================================== */

html body .nd-contact-page .nd-contact-field__label,
html body .nd-contact-page .nd-contact-field--type .nd-contact-field__label{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:center!important;

  min-height:
    58px
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;
}


html body .nd-contact-page .nd-contact-field__label > label,
html body .nd-contact-page .nd-contact-field__label-text{
  display:flex!important;
  align-items:center!important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  line-height:
    1.4
    !important;
}


html body .nd-contact-page .nd-contact-required,
html body .nd-contact-page .nd-contact-optional{
  position:
    relative
    !important;

  top:
    2px
    !important;

  display:inline-grid!important;
  place-items:center!important;

  align-self:
    center
    !important;

  box-sizing:
    border-box
    !important;

  height:
    22px
    !important;

  min-height:
    22px
    !important;

  max-height:
    22px
    !important;

  margin:
    0
    !important;

  transform:
    none
    !important;

  line-height:
    1
    !important;
}


/* ==========================================================
   2. CONFIRM BUTTON TEXT - EXACT VERTICAL CENTER
========================================================== */

html body .nd-contact-page .nd-contact-action-button__label{
  display:grid!important;

  place-items:
    center
    start
    !important;

  box-sizing:
    border-box
    !important;

  height:
    68px
    !important;

  min-height:
    68px
    !important;

  max-height:
    68px
    !important;

  margin:
    0
    !important;

  padding:
    0
    24px
    !important;

  line-height:
    1.4
    !important;
}


/* ==========================================================
   3. BACK BUTTON TEXT - EXACT VERTICAL CENTER
========================================================== */

html body .nd-contact-page .nd-contact-confirm__back-label{
  display:grid!important;

  place-items:
    center
    start
    !important;

  box-sizing:
    border-box
    !important;

  height:
    68px
    !important;

  min-height:
    68px
    !important;

  max-height:
    68px
    !important;

  margin:
    0
    !important;

  padding:
    0
    24px
    !important;

  line-height:
    1.4
    !important;
}


/* ==========================================================
   4. CONFIRM PRIVACY ROW - COMPACT
========================================================== */

html body .nd-contact-page .nd-contact-confirm__row--privacy{
  align-items:
    center
    !important;

  min-height:
    0
    !important;

  padding:
    20px
    0
    22px
    !important;
}


html body
.nd-contact-page
.nd-contact-confirm__row--privacy
dt,

html body
.nd-contact-page
.nd-contact-confirm__row--privacy
dd{
  align-self:
    center
    !important;

  min-height:
    0
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  line-height:
    1.65
    !important;
}


html body
.nd-contact-page
.nd-contact-confirm__row--privacy
dd{
  white-space:
    normal
    !important;
}


/* ==========================================================
   5. CONFIRM EYEBROW REMOVE
========================================================== */

html body .nd-contact-page .nd-contact-confirm__eyebrow{
  display:
    none
    !important;
}


/* CONFIRM削除後の見出し上部余白を調整 */
html body .nd-contact-page .nd-contact-confirm__header{
  margin:
    0
    0
    clamp(34px,3.6vw,48px)
    !important;

  padding:
    0
    !important;
}


/* ==========================================================
   6. SWELL STANDARD BREADCRUMB - REMOVE
   CONTACT専用CSSは/contact/だけで読み込まれるため、
   body classに依存せずWORKSと同方式で直接非表示。
========================================================== */

body .p-breadcrumb,
body .c-breadcrumb,
body #breadcrumb,
body .l-breadcrumb{
  display:
    none
    !important;
}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width:767px){

  html body .nd-contact-page .nd-contact-required,
  html body .nd-contact-page .nd-contact-optional{
    top:
      1px
      !important;
  }


  html body .nd-contact-page .nd-contact-action-button__label{
    height:
      62px
      !important;

    min-height:
      62px
      !important;

    max-height:
      62px
      !important;

    padding:
      0
      18px
      !important;
  }


  html body .nd-contact-page .nd-contact-confirm__back-label{
    height:
      62px
      !important;

    min-height:
      62px
      !important;

    max-height:
      62px
      !important;

    padding:
      0
      18px
      !important;
  }


  html body .nd-contact-page .nd-contact-confirm__row--privacy{
    padding:
      18px
      0
      20px
      !important;
  }

}


/* ==========================================================
   CONTACT PAGE v1.6.1 / ALIGNMENT HOTFIX
   2026-08-19
========================================================== */


/* ==========================================================
   1. 必須 / 任意
   v1.6.0の top:2px を撤回。
   58pxラベル領域の幾何学中央へ完全固定。
========================================================== */

html body .nd-contact-page .nd-contact-required,
html body .nd-contact-page .nd-contact-optional{
  position:
    static
    !important;

  top:
    auto
    !important;

  bottom:
    auto
    !important;

  align-self:
    center
    !important;

  transform:
    none
    !important;

  translate:
    none
    !important;
}


/* ==========================================================
   2. 「入力内容を確認する」
   実フォントの見た目を2px上へ光学補正
========================================================== */

html body .nd-contact-page .nd-contact-action-button__label{
  position:
    relative
    !important;

  top:
    -2px
    !important;

  transform:
    none
    !important;
}


/* ==========================================================
   3. 「入力内容を修正する」
   同じく2px上へ光学補正
========================================================== */

html body .nd-contact-page .nd-contact-confirm__back-label{
  position:
    relative
    !important;

  top:
    -2px
    !important;

  transform:
    none
    !important;
}


/* ==========================================================
   MOBILE
   小さいボタンでは1pxだけ上へ。
========================================================== */

@media (max-width:767px){

  html body .nd-contact-page .nd-contact-action-button__label,
  html body .nd-contact-page .nd-contact-confirm__back-label{
    top:
      -1px
      !important;
  }

}


/* ==========================================================
   CONTACT PAGE v1.7.0 / SCREENSHOT-MEASURED ALIGNMENT
   2026-08-19
========================================================== */


/* ==========================================================
   1. REQUIRED / OPTIONAL
   Screenshot measured:
   - badge box center is about 9.75px above item text
   - badge glyph center is about 4.00px above item text

   Solution:
   - move the status box down 10px
   - move only its inner text up 6px
   Net text movement = +4px
========================================================== */

html body .nd-contact-page .nd-contact-required,
html body .nd-contact-page .nd-contact-optional{
  position:
    relative
    !important;

  top:
    10px
    !important;

  bottom:
    auto
    !important;

  display:inline-grid!important;
  place-items:center!important;

  align-self:
    center
    !important;

  box-sizing:
    border-box
    !important;

  height:
    22px
    !important;

  min-height:
    22px
    !important;

  max-height:
    22px
    !important;

  margin:
    0
    !important;

  transform:
    none
    !important;

  translate:
    none
    !important;
}


html body .nd-contact-page .nd-contact-status__text{
  display:block!important;

  position:
    relative
    !important;

  top:
    -6px
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  line-height:
    1
    !important;

  transform:
    none
    !important;
}


/*
 * 任意は背景なしだが、同じbox + inner text構造にすることで
 * 項目名との文字中心を必須と同じ位置へ揃える。
 */
html body .nd-contact-page .nd-contact-optional{
  background:
    transparent
    !important;
}


/* ==========================================================
   2. CONFIRM BUTTON TEXT
   Current screenshot:
   text center is about 6.50px below 72px button center.
   Move glyph block up 7px.
========================================================== */

html body .nd-contact-page .nd-contact-action-button__label{
  position:
    relative
    !important;

  top:
    0
    !important;

  transform:
    translateY(-7px)
    !important;
}


/* ==========================================================
   3. BACK BUTTON TEXT
   Same font / same 410×72 structure -> same optical correction.
========================================================== */

html body .nd-contact-page .nd-contact-confirm__back-label{
  position:
    relative
    !important;

  top:
    0
    !important;

  transform:
    translateY(-7px)
    !important;
}


/* ==========================================================
   4. CONFIRM PRIVACY ROW
   Explicit auto-height. No inherited large row height.
========================================================== */

html body .nd-contact-page .nd-contact-confirm__row--privacy{
  display:
    grid
    !important;

  grid-template-columns:
    210px
    minmax(0,1fr)
    !important;

  grid-template-rows:
    auto
    !important;

  grid-auto-rows:
    auto
    !important;

  align-items:
    center
    !important;

  box-sizing:
    border-box
    !important;

  width:
    100%
    !important;

  height:
    auto
    !important;

  min-height:
    0
    !important;

  max-height:
    none
    !important;

  margin:
    0
    !important;

  padding:
    12px
    0
    14px
    !important;
}


html body
.nd-contact-page
.nd-contact-confirm__row--privacy
dt,

html body
.nd-contact-page
.nd-contact-confirm__row--privacy
dd{
  display:
    block
    !important;

  align-self:
    center
    !important;

  width:
    auto
    !important;

  height:
    auto
    !important;

  min-height:
    0
    !important;

  max-height:
    none
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  line-height:
    1.5
    !important;

  white-space:
    normal
    !important;
}


/* ==========================================================
   TABLET
========================================================== */

@media (max-width:959px){

  html body .nd-contact-page .nd-contact-confirm__row--privacy{
    grid-template-columns:
      170px
      minmax(0,1fr)
      !important;
  }

}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width:767px){

  html body .nd-contact-page .nd-contact-required,
  html body .nd-contact-page .nd-contact-optional{
    top:
      6px
      !important;
  }


  html body .nd-contact-page .nd-contact-status__text{
    top:
      -4px
      !important;
  }


  html body .nd-contact-page .nd-contact-action-button__label,
  html body .nd-contact-page .nd-contact-confirm__back-label{
    transform:
      translateY(-5px)
      !important;
  }


  html body .nd-contact-page .nd-contact-confirm__row--privacy{
    display:
      block
      !important;

    padding:
      14px
      0
      16px
      !important;
  }


  html body
  .nd-contact-page
  .nd-contact-confirm__row--privacy
  dt{
    margin-bottom:
      6px
      !important;
  }

}


/* ==========================================================
   CONTACT PAGE v1.8.0
   REQUIRED / OPTIONAL STRUCTURAL RESET
========================================================== */


/* ==========================================================
   1. FIELD LABEL SHELL
========================================================== */

html body .nd-contact-page .nd-contact-field__label,
html body .nd-contact-page .nd-contact-field--type .nd-contact-field__label{
  display:flex!important;
  align-items:center!important;

  min-height:
    58px
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;
}


/* ==========================================================
   2. LABEL + STATUS
   両者を同じ24pxのgrid rowへ配置
========================================================== */

html body .nd-contact-page .nd-contact-field__label-row{
  display:inline-grid!important;

  grid-template-columns:
    max-content
    max-content
    !important;

  grid-template-rows:
    24px
    !important;

  align-items:
    center
    !important;

  column-gap:
    10px
    !important;

  box-sizing:
    border-box
    !important;

  width:
    max-content
    !important;

  height:
    24px
    !important;

  min-height:
    24px
    !important;

  max-height:
    24px
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;
}


html body .nd-contact-page .nd-contact-field__label-row > label,
html body .nd-contact-page .nd-contact-field__label-row > .nd-contact-field__label-text{
  grid-column:
    1
    !important;

  grid-row:
    1
    !important;

  align-self:
    center
    !important;

  display:flex!important;
  align-items:center!important;

  box-sizing:
    border-box
    !important;

  width:
    auto
    !important;

  height:
    24px
    !important;

  min-height:
    24px
    !important;

  max-height:
    24px
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  font:
    inherit
    !important;

  line-height:
    24px
    !important;

  white-space:
    nowrap
    !important;
}


/* ==========================================================
   3. NEW STATUS OUTER BOX
   過去の .nd-contact-required / .nd-contact-optional の
   top / transform / padding 指定から完全に分離
========================================================== */

html body .nd-contact-page .nd-contact-status{
  grid-column:
    2
    !important;

  grid-row:
    1
    !important;

  align-self:
    center
    !important;

  position:
    relative
    !important;

  display:block!important;

  box-sizing:
    border-box
    !important;

  height:
    22px
    !important;

  min-height:
    22px
    !important;

  max-height:
    22px
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  top:
    auto
    !important;

  right:
    auto
    !important;

  bottom:
    auto
    !important;

  left:
    auto
    !important;

  transform:
    none
    !important;

  translate:
    none
    !important;
}


html body .nd-contact-page .nd-contact-status--required{
  width:
    39px
    !important;

  min-width:
    39px
    !important;

  max-width:
    39px
    !important;

  overflow:
    hidden
    !important;

  color:
    var(--nd-black)
    !important;

  background:
    var(--nd-accent)
    !important;
}


html body .nd-contact-page .nd-contact-status--optional{
  width:
    26px
    !important;

  min-width:
    26px
    !important;

  max-width:
    26px
    !important;

  overflow:
    visible
    !important;

  color:
    var(--nd-gray)
    !important;

  background:
    transparent
    !important;
}


/* ==========================================================
   4. STATUS TEXT
   outer 22px boxそのものを基準にabsolute中央配置
========================================================== */

html body .nd-contact-page .nd-contact-status__visual{
  position:
    absolute
    !important;

  inset:
    0
    !important;

  display:flex!important;
  align-items:center!important;
  justify-content:center!important;

  box-sizing:
    border-box
    !important;

  width:
    100%
    !important;

  height:
    100%
    !important;

  margin:
    0
    !important;

  padding:
    0
    !important;

  color:
    inherit
    !important;

  font-family:
    "IBM Plex Sans JP",
    sans-serif
    !important;

  font-size:
    12px
    !important;

  font-weight:
    700
    !important;

  line-height:
    1
    !important;

  letter-spacing:
    .04em
    !important;

  text-align:
    center
    !important;

  top:
    0
    !important;

  right:
    0
    !important;

  bottom:
    0
    !important;

  left:
    0
    !important;

  transform:
    none
    !important;

  translate:
    none
    !important;
}


/* textareaの項目名も同じ58px先頭領域を使用 */
html body .nd-contact-page .nd-contact-field--message .nd-contact-field__label{
  align-self:
    start
    !important;
}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width:767px){

  html body .nd-contact-page .nd-contact-field__label,
  html body .nd-contact-page .nd-contact-field--type .nd-contact-field__label{
    min-height:
      22px
      !important;

    margin-bottom:
      12px
      !important;
  }


  html body .nd-contact-page .nd-contact-field__label-row{
    grid-template-rows:
      22px
      !important;

    height:
      22px
      !important;

    min-height:
      22px
      !important;

    max-height:
      22px
      !important;
  }


  html body .nd-contact-page .nd-contact-field__label-row > label,
  html body .nd-contact-page .nd-contact-field__label-row > .nd-contact-field__label-text{
    height:
      22px
      !important;

    min-height:
      22px
      !important;

    max-height:
      22px
      !important;

    line-height:
      22px
      !important;
  }


  html body .nd-contact-page .nd-contact-status{
    height:
      20px
      !important;

    min-height:
      20px
      !important;

    max-height:
      20px
      !important;
  }


  html body .nd-contact-page .nd-contact-status__visual{
    font-size:
      11px
      !important;
  }

}


/* ==========================================================
   CONTACT PAGE v1.8.1
   STATUS VISUAL-CENTER ALIGNMENT
   Uploaded screenshot measured on 2026-08-20
========================================================== */

/*
 * v1.8.0で構造は正常化済み。
 *
 * 現在残っている差は、
 * CSSの24px line box中央と、日本語グリフの視覚中心の差。
 *
 * 最新スクリーンショット実測:
 * - ライムbox高: 35px
 * - ライムbox中心: 79.00px
 * - 項目名グリフ中心: 95.50px
 * - 中心差: 16.50px
 *
 * 22pxのCSS status boxへ換算:
 * 10.37px 下方向
 *
 * 実装値:
 * 10.5px 下方向
 */


/* PC / Tablet */
@media (min-width:768px){

  html body .nd-contact-page .nd-contact-status{
    transform:
      translateY(10.5px)
      !important;

    /*
     * topではなくtransformでstatus component全体を移動。
     * ライム背景と内部文字の中央関係は一切変更しない。
     */
    top:
      auto
      !important;

    bottom:
      auto
      !important;
  }

}


/* Mobileは文字サイズ・行高が変わるため補正量を抑える */
@media (max-width:767px){

  html body .nd-contact-page .nd-contact-status{
    transform:
      translateY(5.0px)
      !important;
  }

}


/* ==========================================================
   CONTACT PAGE v1.9.0 / SUCCESS STATE
========================================================== */

/*
 * CF7標準成功メッセージは、JSが独自成功画面を表示した時だけ隠す。
 * JSが動かなければCF7標準メッセージが残るためfallbackも維持。
 */
html body
.nd-contact-page
.wpcf7-response-output.nd-contact-response--hidden{
  display:none!important;
}


/* SUCCESS ROOT */
html body .nd-contact-page .nd-contact-success[hidden]{
  display:none!important;
}

html body .nd-contact-page .nd-contact-success{
  width:min(100%,820px);
  margin:0;
  padding:0;
  outline:none;
}


/* PANEL */
html body .nd-contact-page .nd-contact-success__panel{
  position:relative;
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  column-gap:28px;
  align-items:start;

  width:100%;
  margin:0;
  padding:34px 36px 36px;

  border:2px solid var(--nd-black);
  background:var(--nd-white);
}


/* LIME MARK */
html body .nd-contact-page .nd-contact-success__mark{
  position:relative;
  display:grid;
  place-items:center;

  width:72px;
  height:72px;

  background:var(--nd-accent);
  color:var(--nd-black);
}

html body .nd-contact-page .nd-contact-success__mark::before{
  content:"";
  width:28px;
  height:14px;

  border-left:3px solid currentColor;
  border-bottom:3px solid currentColor;

  transform:translateY(-3px) rotate(-45deg);
  transform-origin:center;
}


/* CONTENT */
html body .nd-contact-page .nd-contact-success__content{
  min-width:0;
}

html body .nd-contact-page .nd-contact-success__label{
  display:inline-flex;
  align-items:center;
  min-height:28px;

  margin:0 0 14px;
  padding:5px 10px;

  color:var(--nd-white);
  background:var(--nd-black);

  font-family:"IBM Plex Sans JP",sans-serif;
  font-size:12px;
  font-weight:700;
  line-height:1;
  letter-spacing:.08em;
}

html body .nd-contact-page .nd-contact-success__title{
  margin:0!important;
  padding:0!important;

  color:var(--nd-black)!important;
  background:transparent!important;

  font-size:clamp(25px,2.35vw,36px)!important;
  font-weight:700!important;
  line-height:1.35!important;
  letter-spacing:-.035em!important;
}

html body .nd-contact-page .nd-contact-success__body{
  width:min(100%,650px);
  margin-top:20px;
}

html body .nd-contact-page .nd-contact-success__body p{
  margin:0!important;
  padding:0!important;

  color:var(--nd-black)!important;

  font-size:clamp(15px,1.08vw,17px)!important;
  font-weight:400!important;
  line-height:1.9!important;
}

html body .nd-contact-page .nd-contact-success__body p + p{
  margin-top:8px!important;
}


/* RESPONSE TIME */
html body .nd-contact-page .nd-contact-success__time{
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  column-gap:18px;
  align-items:center;

  width:min(100%,650px);
  margin-top:26px;
  padding-top:22px;

  border-top:1px solid var(--nd-line);
}

html body .nd-contact-page .nd-contact-success__time-label{
  display:inline-flex;
  align-items:center;
  min-height:28px;

  margin:0;
  padding:5px 9px;

  color:var(--nd-black);
  background:var(--nd-accent);

  font-size:12px;
  font-weight:700;
  line-height:1;
  letter-spacing:.04em;
}

html body .nd-contact-page .nd-contact-success__time-text{
  margin:0!important;
  padding:0!important;

  color:var(--nd-black)!important;

  font-size:clamp(15px,1.08vw,17px)!important;
  font-weight:600!important;
  line-height:1.7!important;
}


/* remove any SWELL-like decorative bar on the success state */
html body .nd-contact-page .nd-contact-success blockquote,
html body .nd-contact-page .nd-contact-success::before,
html body .nd-contact-page .nd-contact-success::after{
  content:none!important;
  border:0!important;
}


/* SENT PAGE SPACING */
html body .nd-contact-page .nd-contact-form.is-sent{
  width:100%;
}


/* TABLET */
@media (max-width:959px){

  html body .nd-contact-page .nd-contact-success{
    width:min(100%,760px);
  }

  html body .nd-contact-page .nd-contact-success__panel{
    grid-template-columns:64px minmax(0,1fr);
    column-gap:24px;
    padding:30px;
  }

  html body .nd-contact-page .nd-contact-success__mark{
    width:64px;
    height:64px;
  }

}


/* MOBILE */
@media (max-width:767px){

  html body .nd-contact-page .nd-contact-success__panel{
    display:block;
    padding:24px 20px 26px;
  }

  html body .nd-contact-page .nd-contact-success__mark{
    width:56px;
    height:56px;
    margin-bottom:20px;
  }

  html body .nd-contact-page .nd-contact-success__mark::before{
    width:23px;
    height:11px;
    border-left-width:2px;
    border-bottom-width:2px;
  }

  html body .nd-contact-page .nd-contact-success__label{
    margin-bottom:12px;
  }

  html body .nd-contact-page .nd-contact-success__title{
    font-size:25px!important;
  }

  html body .nd-contact-page .nd-contact-success__body{
    margin-top:16px;
  }

  html body .nd-contact-page .nd-contact-success__time{
    display:block;
    margin-top:22px;
    padding-top:18px;
  }

  html body .nd-contact-page .nd-contact-success__time-label{
    margin-bottom:10px;
  }

}


/* ==========================================================
   CONTACT PAGE v1.9.1 / SUCCESS STATE REFINEMENT
========================================================== */

/* チェック削除後は1カラム */
html body .nd-contact-page .nd-contact-success__panel{
  display:block!important;

  padding:
    34px
    36px
    38px
    !important;
}


/* キャッシュ残存時の保険 */
html body .nd-contact-page .nd-contact-success__mark{
  display:none!important;
}


/* 「送信完了」を少し大きく */
html body .nd-contact-page .nd-contact-success__label{
  min-height:
    32px
    !important;

  margin:
    0
    0
    18px
    !important;

  padding:
    6px
    12px
    !important;

  font-size:
    14px
    !important;

  line-height:
    1
    !important;

  letter-spacing:
    .07em
    !important;
}


html body .nd-contact-page .nd-contact-success__content{
  width:
    100%
    !important;

  max-width:
    none
    !important;
}


/* 下部の返信目安ブロックを削除 */
html body .nd-contact-page .nd-contact-success__time{
  display:none!important;
}


html body .nd-contact-page .nd-contact-success__body{
  margin-bottom:
    0
    !important;
}


/* TABLET */
@media (max-width:959px){

  html body .nd-contact-page .nd-contact-success__panel{
    padding:
      30px
      !important;
  }

}


/* MOBILE */
@media (max-width:767px){

  html body .nd-contact-page .nd-contact-success__panel{
    padding:
      24px
      20px
      26px
      !important;
  }


  html body .nd-contact-page .nd-contact-success__label{
    min-height:
      30px
      !important;

    margin-bottom:
      14px
      !important;

    padding:
      6px
      10px
      !important;

    font-size:
      13px
      !important;
  }

}


/* ==========================================================
   CONTACT PAGE v1.9.2
   INQUIRY TYPE / NEW SERVICE PLANS
========================================================== */

/*
 * お問い合わせ種別:
 * - スタートプラン
 * - スタンダードプラン
 * - アドバンスプラン
 * - 未定
 *
 * field name "your-inquiry-type" は変更しないため、
 * 確認画面JS・CF7メールタグとの互換性を維持。
 */


/* PC: 4項目を横一列 */
@media (min-width:960px) {

  html body
  .nd-contact-page
  .nd-contact-type {
    grid-template-columns:
      repeat(4, max-content)
      !important;

    justify-content:
      start
      !important;

    gap:
      10px
      !important;
  }

}


/* Tablet: 2 × 2 */
@media (min-width:768px) and (max-width:959px) {

  html body
  .nd-contact-page
  .nd-contact-type {
    grid-template-columns:
      repeat(2, max-content)
      !important;

    justify-content:
      start
      !important;

    gap:
      8px
      10px
      !important;
  }

}


/* Mobile: 1列。既存の全幅タイル仕様を明示維持 */
@media (max-width:767px) {

  html body
  .nd-contact-page
  .nd-contact-type {
    grid-template-columns:
      minmax(0, 1fr)
      !important;

    justify-content:
      stretch
      !important;

    gap:
      8px
      !important;
  }


  html body
  .nd-contact-page
  .nd-contact-type
  .wpcf7-list-item {
    width:
      100%
      !important;
  }


  html body
  .nd-contact-page
  .nd-contact-type
  .wpcf7-list-item-label {
    width:
      100%
      !important;
  }

}
