/* =========================================================
   CONTACT PAGE
   ---------------------------------------------------------
   01. Step Flow
   02. CF7 Multi Step Input Form
   03. CF7 Review / Confirm Page
========================================================= */


/* #########################################################
   01. Step Flow
######################################################### */

.cf7StepFlow,
.cf7StepFlow *{
  box-sizing:border-box;
}

.cf7StepFlow{
  /* Desktop */
  --step-label-fz: 0.85vw;
  --step-dot-size: 2.5vw;
  --step-dot-num-fz: 0.82vw;
  --step-gap-label-dot: 0.875vw;
  --step-line-thickness: 0.1vw;
  --step-line-offset: calc(
    (var(--step-label-fz) * 1.4) +
    var(--step-gap-label-dot) +
    (var(--step-dot-size) / 2)
  );

  width:100%;
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto;
  align-items:start;
  column-gap:0;
  color:#111;
}

.cf7StepFlow__step{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
  min-width:0;
}

.cf7StepFlow__label{
  font-size:var(--step-label-fz);
  line-height:1.4;
  letter-spacing:0.04em;
  color:rgba(17,17,17,0.52);
  white-space:nowrap;
  transition:color .2s ease;
}

.cf7StepFlow__dot{
  position:relative;
  width:var(--step-dot-size);
  height:var(--step-dot-size);
  margin-top:var(--step-gap-label-dot);
  border-radius:50%;
  border:1px solid rgba(17,17,17,0.18);
  background:rgba(17,17,17,0.10);
  display:grid;
  place-items:center;
  overflow:hidden;
}

.cf7StepFlow__dotInner{
  position:absolute;
  inset:0;
  border-radius:50%;
  background:#111;
  transform:scale(0);
  transition:transform .2s ease;
}

.cf7StepFlow__dotNum{
  position:relative;
  z-index:1;
  font-size:var(--step-dot-num-fz);
  line-height:1;
  font-weight:700;
  color:#111;
  transition:color .2s ease;
}

.cf7StepFlow__step.active .cf7StepFlow__dotInner{
  transform:scale(1);
}

.cf7StepFlow__step.active .cf7StepFlow__dotNum{
  color:#fff;
}

.cf7StepFlow__step.active .cf7StepFlow__label{
  color:#111;
}

.cf7StepFlow__line{
  align-self:start;
  margin-top:var(--step-line-offset);
  border-top:var(--step-line-thickness) dotted rgba(17,17,17,0.28);
  min-width:1.6vw;
}

@media only screen and (max-width:1020px) and (min-width:768px){
  .cf7StepFlow{
    --step-label-fz: 1.3vw;
    --step-dot-size: 3.6vw;
    --step-dot-num-fz: 1.2vw;
    --step-gap-label-dot: 0.875vw;
    --step-line-thickness: 0.14vw;
  }

  .cf7StepFlow__line{
    min-width:1.8vw;
  }
}

@media only screen and (max-width:767px){
  .cf7StepFlow{
    --step-label-fz: 2.8vw;
    --step-dot-size: 8vw;
    --step-dot-num-fz: 2.6vw;
    --step-gap-label-dot: 1.375vw;
    --step-line-thickness: 0.24vw;
  }

  .cf7StepFlow__label{
    letter-spacing:0.02em;
  }

  .cf7StepFlow__line{
    min-width:2vw;
  }
}


/* #########################################################
   02. CF7 Multi Step Input Form
######################################################### */

:root{
  --cf7x-bg: transparent;

  --cf7x-text: #111111;
  --cf7x-head: #111111;
  --cf7x-muted: #514a43;
  --cf7x-note: #6b645c;
  --cf7x-placeholder: #8b847b;

  --cf7x-input-bg: rgba(255,255,255,0.72);
  --cf7x-input-border: rgba(95,84,71,0.28);
  --cf7x-divider: rgba(95,84,71,0.22);

  --cf7x-focus: #111111;

  --cf7x-required: #b42318;
  --cf7x-required-bg: #fbe9e7;
  --cf7x-required-border: rgba(180,35,24,0.18);

  --cf7x-optional: #5b554d;
  --cf7x-optional-bg: #e7dfd2;
  --cf7x-optional-border: rgba(91,85,77,0.12);

  --cf7x-choice-bg: rgba(255,255,255,0.72);
  --cf7x-choice-dot: #111111;

  --cf7x-btn-bg: #111111;
  --cf7x-btn-fg: #f7f2e8;
  --cf7x-btn-disabled-bg: #c8c0b5;
  --cf7x-btn-disabled-fg: rgba(17,17,17,0.45);

  --cf7x-error: #c62828;

  --cf7x-fz-base: 1vw;
  --cf7x-fz-help: 0.82vw;
  --cf7x-fz-badge: 0.72vw;
  --cf7x-fz-input: 1vw;
  --cf7x-fz-option: 1vw;
  --cf7x-fz-button: 1.05vw;
  --cf7x-fz-textarea: 1vw;

  --cf7x-choice-size: 1.42vw;
  --cf7x-choice-dot-size: 0.64vw;
  --cf7x-choice-gap: 0.62em;

  --cf7x-privacy-check-size: 1.42vw;
  --cf7x-privacy-dot-size: 0.64vw;

  --cf7x-btn-width-pc: 37.5%;
  --cf7x-btn-width-tb: 50%;
  --cf7x-btn-width-sp: 100%;

  --cf7x-btn-py-pc: 1.05vw;
  --cf7x-btn-px-pc: 1.4vw;

  --cf7x-btn-py-tb: 1.15vw;
  --cf7x-btn-px-tb: 1.6vw;

  --cf7x-btn-py-sp: 2.3vw;
  --cf7x-btn-px-sp: 3vw;

  --cf7x-review-bg: transparent;

  --cf7x-review-text: #111111;
  --cf7x-review-head: #111111;
  --cf7x-review-muted: #514a43;
  --cf7x-review-note: #6b645c;

  --cf7x-review-divider: rgba(95,84,71,0.22);

  --cf7x-review-fz-base: 1vw;
  --cf7x-review-fz-help: 0.82vw;
  --cf7x-review-fz-value: 1vw;

  --cf7x-review-btn-width-pc: 37.5%;
  --cf7x-review-btn-width-tb: 50%;
  --cf7x-review-btn-width-sp: 100%;

  --cf7x-review-btn-py-pc: 1.05vw;
  --cf7x-review-btn-px-pc: 1.4vw;

  --cf7x-review-btn-py-tb: 1.15vw;
  --cf7x-review-btn-px-tb: 1.6vw;

  --cf7x-review-btn-py-sp: 2.3vw;
  --cf7x-review-btn-px-sp: 3vw;

  --cf7x-review-btn-fz-pc: 1.05vw;
  --cf7x-review-btn-fz-tb: 1.35vw;
  --cf7x-review-btn-fz-sp: 2.9vw;
}

@media only screen and (max-width:1020px) and (min-width:768px){
  :root{
    --cf7x-fz-base: 1.35vw;
    --cf7x-fz-help: 1.1vw;
    --cf7x-fz-badge: 0.95vw;
    --cf7x-fz-input: 1.35vw;
    --cf7x-fz-option: 1.35vw;
    --cf7x-fz-button: 1.35vw;
    --cf7x-fz-textarea: 1.35vw;

    --cf7x-choice-size: 1.8vw;
    --cf7x-choice-dot-size: 0.76vw;
    --cf7x-choice-gap: 0.68em;

    --cf7x-privacy-check-size: 1.8vw;
    --cf7x-privacy-dot-size: 0.76vw;

    --cf7x-review-fz-base: 1.35vw;
    --cf7x-review-fz-help: 1.1vw;
    --cf7x-review-fz-value: 1.35vw;
  }
}

@media (max-width:767px){
  :root{
    --cf7x-fz-base: 3.5vw;
    --cf7x-fz-help: 2.6vw;
    --cf7x-fz-badge: 2.35vw;
    --cf7x-fz-input: 3.4vw;
    --cf7x-fz-option: 3.2vw;
    --cf7x-fz-button: 2.9vw;
    --cf7x-fz-textarea: 3.4vw;

    --cf7x-choice-size: 3.9vw;
    --cf7x-choice-dot-size: 1.7vw;
    --cf7x-choice-gap: 0.72em;

    --cf7x-privacy-check-size: 3.9vw;
    --cf7x-privacy-dot-size: 1.7vw;

    --cf7x-review-fz-base: 3.5vw;
    --cf7x-review-fz-help: 2.6vw;
    --cf7x-review-fz-value: 3.4vw;
  }
}

.cf7x-contact-form-container,
.cf7x-contact-form-container *{
  box-sizing:border-box;
}

.cf7x-contact-form-container{
  width:100%;
  padding:4vw 0;
  background:var(--cf7x-bg);
  font-size:var(--cf7x-fz-base);
  color:var(--cf7x-text);
}

.cf7x-contact-form-container p{
  margin:0;
}

.cf7x-contact-form-container .cf7x-form-field{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0;
  padding:2vw 0;
  border-top:1px solid var(--cf7x-divider);
}

.cf7x-contact-form-container .cf7x-form-field:last-of-type{
  border-bottom:1px solid var(--cf7x-divider);
}

.cf7x-contact-form-container .cf7x-field-label{
  flex:0 0 25%;
  font-weight:600;
  color:var(--cf7x-head);
}

.cf7x-contact-form-container .cf7x-field-input{
  flex:1;
  max-width:42%;
  min-width:0;
  font-weight:500;
}

.cf7x-contact-form-container .cf7x-field-help{
  flex:0 0 20%;
}

.cf7x-contact-form-container .cf7x-field-label label,
.cf7x-contact-form-container .cf7x-field-label > span,
.cf7x-contact-form-container .cf7x-field-label span[id$="-label"]{
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  line-height:1.3;
  gap:0.8em;
}

.cf7x-contact-form-container .cf7x-form-field label,
.cf7x-contact-form-container .cf7x-form-field p,
.cf7x-contact-form-container .cf7x-field-label p,
.cf7x-contact-form-container .cf7x-field-help p{
  margin:0;
}

.cf7x-contact-form-container .cf7x-note,
.cf7x-contact-form-container .cf7x-help-text,
.cf7x-contact-form-container .cf7x-privacy-policy p{
  font-size:var(--cf7x-fz-help);
}

.cf7x-contact-form-container .cf7x-help-text{
  color:var(--cf7x-note);
  line-height:1.8;
}

.cf7x-contact-form-container .cf7x-note{
  color:var(--cf7x-note);
  margin-top:0.4vw;
}

.cf7x-contact-form-container .cf7x-required,
.cf7x-contact-form-container .cf7x-optional{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:var(--cf7x-fz-badge);
  line-height:1;
  padding:0.4vw 0.6vw;
  border-radius:0;
  margin-left:0.2em;
  transform:translateY(-0.05em);
  white-space:nowrap;
  flex-shrink:0;
}

.cf7x-contact-form-container .cf7x-required{
  background:var(--cf7x-required-bg);
  color:var(--cf7x-required);
  border:1px solid var(--cf7x-required-border);
}

.cf7x-contact-form-container .cf7x-optional{
  background:var(--cf7x-optional-bg);
  color:var(--cf7x-optional);
  border:1px solid var(--cf7x-optional-border);
}

.cf7x-contact-form-container input[type="text"],
.cf7x-contact-form-container input[type="email"],
.cf7x-contact-form-container input[type="tel"],
.cf7x-contact-form-container textarea,
.cf7x-contact-form-container select{
  width:100%;
  max-width:100%;
  border:1px solid var(--cf7x-input-border);
  border-radius:0;
  font-size:var(--cf7x-fz-input);
  line-height:1.2;
  background:var(--cf7x-input-bg);
  color:var(--cf7x-text);
  outline:none;
  transition:border-color .15s, background-color .15s, box-shadow .15s;
  box-shadow:none;
}

.cf7x-contact-form-container input[type="text"],
.cf7x-contact-form-container input[type="email"],
.cf7x-contact-form-container input[type="tel"],
.cf7x-contact-form-container select{
  height:auto;
  padding:1vw 1.3vw;
}

.cf7x-contact-form-container textarea,
.cf7x-contact-form-container .wpcf7-form-control.wpcf7-textarea{
  width:100%;
  max-width:100%;
  font-size:var(--cf7x-fz-textarea) !important;
  line-height:1.7 !important;
  font-weight:500;
  letter-spacing:0.02em;
  color:var(--cf7x-text);
  padding:1vw 1.3vw !important;
  border:1px solid var(--cf7x-input-border);
  border-radius:0;
  background:var(--cf7x-input-bg);
  resize:vertical;
  min-height:10vw;
}

.cf7x-contact-form-container input[type="text"]:focus,
.cf7x-contact-form-container input[type="email"]:focus,
.cf7x-contact-form-container input[type="tel"]:focus,
.cf7x-contact-form-container textarea:focus,
.cf7x-contact-form-container select:focus{
  border-color:var(--cf7x-focus);
  box-shadow:0 0 0 0.08vw rgba(17,17,17,0.12);
}

.cf7x-contact-form-container ::placeholder{
  color:var(--cf7x-placeholder);
  opacity:1;
}

.cf7x-contact-form-container input:-webkit-autofill,
.cf7x-contact-form-container textarea:-webkit-autofill,
.cf7x-contact-form-container select:-webkit-autofill{
  -webkit-text-fill-color:var(--cf7x-text) !important;
  transition:background-color 9999s ease-out 0s;
  box-shadow:0 0 0 1000px var(--cf7x-input-bg) inset !important;
}

.cf7x-contact-form-container .wpcf7-form-control-wrap{
  display:block;
  width:100%;
}

.cf7x-contact-form-container .cf7x-options-inline{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1vw 2vw;
  align-items:start;
}

.cf7x-contact-form-container .cf7x-options-inline br,
.cf7x-contact-form-container .cf7x-options-inline .wpcf7-list-item-br{
  display:none !important;
}

.cf7x-contact-form-container .cf7x-options-inline .wpcf7-list-item{
  display:flex !important;
  align-items:center !important;
  min-width:0;
  margin:0;
  white-space:normal;
}

.cf7x-contact-form-container .cf7x-options-inline .wpcf7-list-item label{
  display:flex;
  align-items:center;
  gap:0;
  margin:0;
  min-width:0;
  width:100%;
}

.cf7x-contact-form-container .cf7x-options-inline input[type="checkbox"],
.cf7x-contact-form-container .cf7x-options-inline input[type="radio"]{
  -webkit-appearance:none !important;
  appearance:none !important;
  width:var(--cf7x-choice-size);
  height:var(--cf7x-choice-size);
  min-width:var(--cf7x-choice-size);
  min-height:var(--cf7x-choice-size);
  border:1px solid var(--cf7x-input-border);
  background:var(--cf7x-choice-bg) !important;
  border-radius:0;
  position:relative;
  cursor:pointer;
  outline:none;
  margin:0;
  vertical-align:middle;
  flex-shrink:0;
}

.cf7x-contact-form-container .cf7x-options-inline input[type="checkbox"]:checked,
.cf7x-contact-form-container .cf7x-options-inline input[type="radio"]:checked{
  border-color:var(--cf7x-focus);
}

.cf7x-contact-form-container .cf7x-options-inline input[type="checkbox"]::after,
.cf7x-contact-form-container .cf7x-options-inline input[type="radio"]::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:0;
  height:0;
  transform:translate(-50%, -50%);
  background:var(--cf7x-choice-dot);
  border-radius:0;
  transition:width .12s ease, height .12s ease;
}

.cf7x-contact-form-container .cf7x-options-inline input[type="checkbox"]:checked::after,
.cf7x-contact-form-container .cf7x-options-inline input[type="radio"]:checked::after{
  width:var(--cf7x-choice-dot-size);
  height:var(--cf7x-choice-dot-size);
}

.cf7x-contact-form-container .cf7x-options-inline .wpcf7-list-item-label,
.cf7x-contact-form-container .cf7x-options-inline label.wpcf7-list-item-label{
  display:inline-flex;
  align-items:center;
  margin:0 0 0 var(--cf7x-choice-gap) !important;
  line-height:1.4;
  color:var(--cf7x-text);
  font-size:var(--cf7x-fz-option) !important;
  min-width:0;
}

.cf7x-contact-form-container .cf7x-privacy-policy{
  padding:1.8vw 0 0 0;
  text-align:center;
  margin:3vw 0 1.5vw;
  line-height:1.8;
  color:var(--cf7x-muted);
  border-top:1px solid var(--cf7x-divider);
}

.cf7x-contact-form-container .cf7x-privacy-consent{
  display:flex;
  justify-content:center;
  align-items:center;
}

.cf7x-contact-form-container .cf7x-privacy-consent .wpcf7-list-item{
  display:inline-flex !important;
  align-items:center !important;
  margin:0;
  white-space:nowrap;
}

.cf7x-contact-form-container .cf7x-privacy-consent .wpcf7-list-item label{
  display:inline-flex;
  align-items:center;
  margin:0;
}

.cf7x-contact-form-container .cf7x-privacy-consent br,
.cf7x-contact-form-container .cf7x-privacy-consent .wpcf7-list-item-br{
  display:none !important;
}

.cf7x-contact-form-container .cf7x-privacy-consent input[type="checkbox"]{
  -webkit-appearance:none;
  appearance:none;
  width:var(--cf7x-privacy-check-size);
  height:var(--cf7x-privacy-check-size);
  min-width:var(--cf7x-privacy-check-size);
  min-height:var(--cf7x-privacy-check-size);
  background:var(--cf7x-choice-bg);
  border:1px solid var(--cf7x-input-border);
  border-radius:0;
  position:relative;
  cursor:pointer;
  outline:none;
  display:inline-block;
  vertical-align:middle;
  flex-shrink:0;
  margin:0 0.8vw 0 0;
}

.cf7x-contact-form-container .cf7x-privacy-consent input[type="checkbox"]::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:0;
  height:0;
  transform:translate(-50%, -50%);
  background:var(--cf7x-choice-dot);
  border-radius:0;
  transition:width .12s ease, height .12s ease;
}

.cf7x-contact-form-container .cf7x-privacy-consent input[type="checkbox"]:checked{
  border-color:var(--cf7x-focus);
}

.cf7x-contact-form-container .cf7x-privacy-consent input[type="checkbox"]:checked::after{
  width:var(--cf7x-privacy-dot-size);
  height:var(--cf7x-privacy-dot-size);
}

.cf7x-contact-form-container .cf7x-privacy-consent .wpcf7-list-item-label,
.cf7x-contact-form-container .cf7x-privacy-consent label.wpcf7-list-item-label,
.cf7x-contact-form-container .cf7x-privacy-consent label[for="privacy-agree"]{
  display:inline-flex !important;
  align-items:center !important;
  margin:0 !important;
  line-height:1.4;
  font-size:var(--cf7x-fz-option) !important;
  color:var(--cf7x-text);
}

.cf7x-contact-form-container .cf7x-submit-container{
  text-align:center;
  margin-top:3vw;
  position:relative;
}

.cf7x-contact-form-container .cf7x-submit-btn{
  -webkit-appearance:none;
  appearance:none;
  display:inline-block;
  vertical-align:middle;
  width:var(--cf7x-btn-width-pc);
  padding:var(--cf7x-btn-py-pc) var(--cf7x-btn-px-pc);
  margin:0;
  border:1px solid transparent;
  border-radius:0;
  line-height:1 !important;
  background:var(--cf7x-btn-disabled-bg);
  color:var(--cf7x-btn-disabled-fg);
  box-shadow:0 0.7vw 1.2vw -0.7vw rgba(0,0,0,.08);
  cursor:pointer;
  overflow:hidden;
  position:relative;
  transition:
    background-color .3s ease,
    color .3s ease,
    border-color .3s ease,
    box-shadow .3s ease,
    opacity .3s ease;
}

.cf7x-contact-form-container:not(:has(#privacy-agree:checked)) .cf7x-submit-btn{
  pointer-events:none;
  cursor:not-allowed;
}

.cf7x-contact-form-container:has(#privacy-agree:checked) .cf7x-submit-btn{
  background:var(--cf7x-btn-bg);
  color:var(--cf7x-btn-fg);
  box-shadow:0 0.9vw 1.8vw -0.6vw rgba(0,0,0,.18);
  pointer-events:auto;
}

.cf7x-contact-form-container .cf7x-submit-btn__label{
  position:relative;
  display:block;
  width:100%;
  height:1.1em;
  overflow:hidden;
}

.cf7x-contact-form-container .cf7x-submit-btn__text{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:var(--cf7x-fz-button);
  font-weight:700;
  line-height:1 !important;
  letter-spacing:0.12em;
  white-space:nowrap;
  backface-visibility:hidden;
  transform-style:preserve-3d;
  transition:
    transform .42s cubic-bezier(.22,.61,.36,1),
    opacity .32s ease;
}

.cf7x-contact-form-container .cf7x-submit-btn__text--default{
  transform:translateY(0%) rotateX(0deg);
  opacity:1;
}

.cf7x-contact-form-container .cf7x-submit-btn__text--hover{
  transform:translateY(100%) rotateX(-90deg);
  opacity:0;
}

.cf7x-contact-form-container:has(#privacy-agree:checked) .cf7x-submit-btn:hover .cf7x-submit-btn__text--default{
  transform:translateY(-100%) rotateX(90deg);
  opacity:0;
}

.cf7x-contact-form-container:has(#privacy-agree:checked) .cf7x-submit-btn:hover .cf7x-submit-btn__text--hover{
  transform:translateY(0%) rotateX(0deg);
  opacity:1;
}

.cf7x-contact-form-container .cf7x-submit-container .wpcf7-spinner{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:-2.2em;
  margin:0;
  pointer-events:none;
}

.cf7x-contact-form-container .wpcf7-not-valid-tip{
  display:block;
  margin-top:0.8vw;
  font-size:0.74vw;
  line-height:1.5;
  color:var(--cf7x-error);
}

.cf7x-contact-form-container .wpcf7-response-output,
.cf7x-review .wpcf7-response-output,
.wpcf7 .wpcf7-response-output{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
  border:none !important;
}

@media only screen and (max-width:1020px) and (min-width:768px){
  .cf7x-contact-form-container .cf7x-field-label{
    flex:0 0 20%;
  }

  .cf7x-contact-form-container .cf7x-field-input{
    max-width:56%;
  }

  .cf7x-contact-form-container .cf7x-field-help{
    flex:0 0 18%;
  }

  .cf7x-contact-form-container .cf7x-required,
  .cf7x-contact-form-container .cf7x-optional{
    padding:0.35vw 0.55vw;
  }

  .cf7x-contact-form-container input[type="text"],
  .cf7x-contact-form-container input[type="email"],
  .cf7x-contact-form-container input[type="tel"],
  .cf7x-contact-form-container select{
    padding:1.1vw 1.4vw;
  }

  .cf7x-contact-form-container textarea,
  .cf7x-contact-form-container .wpcf7-form-control.wpcf7-textarea{
    padding:1.2vw 1.6vw !important;
    min-height:16vw;
  }

  .cf7x-contact-form-container .cf7x-privacy-consent input[type="checkbox"]{
    margin-right:1vw;
  }

  .cf7x-contact-form-container .cf7x-submit-btn{
    width:var(--cf7x-btn-width-tb);
    padding:var(--cf7x-btn-py-tb) var(--cf7x-btn-px-tb);
  }

  .cf7x-contact-form-container .wpcf7-not-valid-tip{
    margin-top:1vw;
    font-size:1vw;
  }

  .cf7x-contact-form-container .cf7x-options-inline{
    gap:1.2vw 2.2vw;
  }
}

@media (max-width:767px){
  .cf7x-contact-form-container{
    padding:5vw 0;
  }

  .cf7x-contact-form-container .cf7x-form-field{
    flex-direction:column;
    gap:2vw;
    padding:4vw 0;
    align-items:flex-start;
  }

  .cf7x-contact-form-container .cf7x-field-label,
  .cf7x-contact-form-container .cf7x-field-input,
  .cf7x-contact-form-container .cf7x-field-help{
    flex:none;
    width:100%;
    max-width:100%;
  }

  .cf7x-contact-form-container .cf7x-field-input p{
    margin:0 !important;
    width:100% !important;
  }

  .cf7x-contact-form-container .cf7x-field-label label,
  .cf7x-contact-form-container .cf7x-field-label > span,
  .cf7x-contact-form-container .cf7x-field-label span[id$="-label"]{
    justify-content:flex-start;
    gap:0.6em;
  }

  .cf7x-contact-form-container .cf7x-required,
  .cf7x-contact-form-container .cf7x-optional{
    padding:1vw 1.5vw;
  }

  .cf7x-contact-form-container .cf7x-note{
    margin-top:1vw;
  }

  .cf7x-contact-form-container input[type="text"],
  .cf7x-contact-form-container input[type="email"],
  .cf7x-contact-form-container input[type="tel"],
  .cf7x-contact-form-container textarea,
  .cf7x-contact-form-container select{
    width:100%;
    padding:2.5vw 3vw;
  }

  .cf7x-contact-form-container textarea,
  .cf7x-contact-form-container .wpcf7-form-control.wpcf7-textarea{
    padding:2.5vw 3vw !important;
    min-height:25vw;
  }

  .cf7x-contact-form-container .cf7x-options-inline{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:2vw 0;
  }

  .cf7x-contact-form-container .cf7x-privacy-policy{
    padding:4vw 0 0 0;
    margin:6vw 0 3vw;
  }

  .cf7x-contact-form-container .cf7x-privacy-consent input[type="checkbox"]{
    margin-right:1.8vw;
  }

  .cf7x-contact-form-container .cf7x-submit-container{
    margin-top:6vw;
  }

  .cf7x-contact-form-container .cf7x-submit-btn{
    width:var(--cf7x-btn-width-sp);
    padding:var(--cf7x-btn-py-sp) var(--cf7x-btn-px-sp);
  }

  .cf7x-contact-form-container .cf7x-submit-btn__text{
    letter-spacing:0.08em;
  }

  .cf7x-contact-form-container .cf7x-submit-container .wpcf7-spinner{
    bottom:-2.8em;
  }

  .cf7x-contact-form-container .wpcf7-not-valid-tip{
    margin-top:2vw;
    font-size:2.5vw;
    line-height:1.45;
  }
}


/* #########################################################
   03. CF7 Review / Confirm Page
######################################################### */

.cf7x-review,
.cf7x-review *{
  box-sizing:border-box;
}

.cf7x-review{
  width:100%;
  padding:4vw 0;
  background:var(--cf7x-review-bg);
  color:var(--cf7x-review-text);
  font-size:var(--cf7x-review-fz-base);
}

.cf7x-review p{
  margin:0;
}

.cf7x-review .cf7x-review-field{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0;
  padding:2vw 0;
  border-top:1px solid var(--cf7x-review-divider);
}

.cf7x-review .cf7x-review-field:last-of-type{
  border-bottom:1px solid var(--cf7x-review-divider);
}

.cf7x-review .cf7x-review-label{
  flex:0 0 25%;
  font-weight:600;
  color:var(--cf7x-review-head);
}

.cf7x-review .cf7x-review-value{
  flex:1;
  max-width:42%;
  min-width:0;
  font-weight:500;
  font-size:var(--cf7x-review-fz-value);
  line-height:1.8;
  color:var(--cf7x-review-text);
  overflow-wrap:anywhere;
  word-break:break-word;
}

.cf7x-review .cf7x-review-help{
  flex:0 0 20%;
}

.cf7x-review .cf7x-review-valueInner{
  display:block;
  width:100%;
  padding:0.95vw 0;
  background:transparent;
}

.cf7x-review .cf7x-review-value--multiline .cf7x-review-valueInner{
  white-space:pre-line;
}

.cf7x-review .cf7x-review-helpText{
  font-size:var(--cf7x-review-fz-help);
  color:var(--cf7x-review-note);
  line-height:1.8;
}

.cf7x-review .cf7x-review-submit-container{
  text-align:center;
  margin-top:3vw;
  padding-top:3vw;
  border-top:1px solid var(--cf7x-review-divider);
  position:relative;
}

.cf7x-review .cf7x-review-submit-btn{
  -webkit-appearance:none !important;
  appearance:none !important;
  display:inline-block;
  vertical-align:middle;
  width:var(--cf7x-review-btn-width-pc);
  padding:var(--cf7x-review-btn-py-pc) var(--cf7x-review-btn-px-pc);
  margin:0;
  border:1px solid transparent !important;
  border-radius:0 !important;
  line-height:1 !important;
  background:#111111 !important;
  color:#f7f2e8 !important;
  box-shadow:0 0.9vw 1.8vw -0.6vw rgba(0,0,0,.18);
  cursor:pointer;
  overflow:hidden;
  position:relative;
  transition:
    background-color .3s ease,
    color .3s ease,
    border-color .3s ease,
    box-shadow .3s ease,
    opacity .3s ease;
}

.cf7x-review .cf7x-review-submit-btn:hover{
  background:#111111 !important;
  color:#f7f2e8 !important;
}

.cf7x-review .cf7x-review-submit-btn__label{
  position:relative;
  display:block;
  width:100%;
  height:1.1em;
  overflow:hidden;
}

.cf7x-review .cf7x-review-submit-btn__text{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:var(--cf7x-review-btn-fz-pc);
  font-weight:700;
  line-height:1 !important;
  letter-spacing:0.12em;
  white-space:nowrap;
  backface-visibility:hidden;
  transform-style:preserve-3d;
}

.cf7x-review .cf7x-review-prev-btn{
  display:inline-block;
  margin-top:2.2vw;
  background:transparent !important;
  color:var(--cf7x-review-text) !important;
  font-size:var(--cf7x-review-fz-help) !important;
  line-height:1.4;
  letter-spacing:0.08em;
  border:none !important;
  border-bottom:1px solid var(--cf7x-review-divider) !important;
  padding:0 0 0.2em 0 !important;
  cursor:pointer;
  box-shadow:none !important;
}

.cf7x-review .cf7x-review-prev-btn:hover{
  color:var(--cf7x-review-text) !important;
  border-bottom:1px solid var(--cf7x-review-divider) !important;
}

.cf7x-review .cf7x-review-submit-container .wpcf7-spinner{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:-2.2em;
  margin:0;
  pointer-events:none;
}

.cf7x-review input[type="hidden"]{
  display:none !important;
}

@media only screen and (max-width:1020px) and (min-width:768px){
  .cf7x-review .cf7x-review-label{
    flex:0 0 20%;
  }

  .cf7x-review .cf7x-review-value{
    max-width:56%;
  }

  .cf7x-review .cf7x-review-help{
    flex:0 0 18%;
  }

  .cf7x-review .cf7x-review-submit-btn{
    width:var(--cf7x-review-btn-width-tb);
    padding:var(--cf7x-review-btn-py-tb) var(--cf7x-review-btn-px-tb);
  }

  .cf7x-review .cf7x-review-submit-btn__text{
    font-size:var(--cf7x-review-btn-fz-tb);
  }

  .cf7x-review .cf7x-review-prev-btn{
    margin-top:2.6vw;
  }

  .cf7x-review .cf7x-review-valueInner{
    padding:1.05vw 0;
  }
}

@media (max-width:767px){
  .cf7x-review{
    padding:5vw 0;
  }

  .cf7x-review .cf7x-review-field{
    flex-direction:column;
    align-items:flex-start;
    gap:2vw;
    padding:4vw 0;
  }

  .cf7x-review .cf7x-review-label,
  .cf7x-review .cf7x-review-value,
  .cf7x-review .cf7x-review-help{
    flex:none;
    max-width:100%;
    width:100%;
  }

  .cf7x-review .cf7x-review-submit-container{
    margin-top:6vw;
    padding-top:6vw;
  }

  .cf7x-review .cf7x-review-submit-btn{
    width:var(--cf7x-review-btn-width-sp);
    padding:var(--cf7x-review-btn-py-sp) var(--cf7x-review-btn-px-sp);
  }

  .cf7x-review .cf7x-review-submit-btn__text{
    font-size:var(--cf7x-review-btn-fz-sp);
    letter-spacing:0.08em;
  }

  .cf7x-review .cf7x-review-prev-btn{
    margin-top:4vw;
    font-size:2.6vw !important;
  }

  .cf7x-review .cf7x-review-submit-container .wpcf7-spinner{
    bottom:-2.8em;
  }

  .cf7x-review .cf7x-review-valueInner{
    padding:0;
  }
}