@charset "UTF-8";

/* =====================================================
  RESERVE / CONTACT PAGE
  actual structure fit
===================================================== */

/* =====================================================
  ROOT
===================================================== */
:root{
  --reserve-title-color:rgba(244,243,239,.88);
  --reserve-kicker-color:rgba(244,243,239,.68);
  --reserve-body-color:rgba(244,243,239,.56);
  --reserve-label-color:rgba(244,243,239,.72);
  --reserve-placeholder:rgba(244,243,239,.32);

  --reserve-line:rgba(244,243,239,.14);
  --reserve-line-focus:rgba(244,243,239,.52);

  --reserve-chip-bg:rgba(244,243,239,.04);
  --reserve-chip-border:rgba(244,243,239,.10);
  --reserve-chip-text:rgba(244,243,239,.54);

  --reserve-link:rgba(244,243,239,.72);
  --reserve-link-hover:rgba(244,243,239,.92);

  --reserve-form-gap:26px;
  --reserve-row-gap:10px;
}

/* =====================================================
  PAGE HEAD
  実HTML: .fb-pagehead / .fb-container / .fb-pagehead__title
===================================================== */
.fb-pagehead{
  padding:72px 0 28px;
  background:transparent;
}

.fb-pagehead .fb-container{
  width:100%;
  max-width:calc(var(--bar-max) + (var(--bar-gutter) * 2));
  margin-inline:auto;
  padding-left:var(--bar-gutter);
  padding-right:var(--bar-gutter);
  box-sizing:border-box;
}

.fb-pagehead__title{
  margin:0;
  padding:0;

  font-family:var(--fb-en);
  font-size:13px;
  line-height:1.6;
  letter-spacing:.18em;
  text-transform:uppercase;

  color:rgba(244,243,239,.72);
}

/* =====================================================
  LOWER SECTION WRAP
  親テーマの .fb-section / .fb-container に合わせる
===================================================== */
.fb-section,
.fb-section-lower,
.fb-section--lower{
  background:transparent;
}

.fb-section .fb-container,
.fb-section-lower .fb-container,
.fb-section--lower .fb-container{
  width:100%;
  max-width:calc(var(--bar-max) + (var(--bar-gutter) * 2));
  margin-inline:auto;
  padding-left:var(--bar-gutter);
  padding-right:var(--bar-gutter);
  box-sizing:border-box;
}

/* =====================================================
  FORM WRAP
  CF7ブロック自体を header / footer と同じ基準線へ
===================================================== */
.fd-form{
  width:100%;
  display:grid;
  gap:var(--reserve-form-gap);
}

/* =====================================================
  ROW
===================================================== */
.fd-form__row{
  position:relative;
  display:grid;
  gap:var(--reserve-row-gap);
}

.fd-form__row label{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;

  font-size:13px;
  letter-spacing:.04em;
  color:var(--reserve-label-color);
}

.fd-form__row::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:1px;
  background:var(--reserve-line-focus);
  transition:width .32s cubic-bezier(.22,.61,.36,1);
  pointer-events:none;
}

.fd-form__row:focus-within::after{
  width:100%;
}

/* =====================================================
  REQUIRED
===================================================== */
.fd-required{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:20px;
  padding:0 8px;

  border:1px solid var(--reserve-chip-border);
  background:var(--reserve-chip-bg);
  color:var(--reserve-chip-text);

  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

/* =====================================================
  INPUT
===================================================== */
.fd-input,
.fd-select,
.fd-textarea{
  width:100%;
  border:0;
  border-bottom:1px solid var(--reserve-line);
  background:transparent;

  padding:12px 0 10px;

  font-size:15px;
  line-height:1.8;
  color:var(--reserve-title-color);

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

.fd-input::placeholder,
.fd-textarea::placeholder{
  color:var(--reserve-placeholder);
  opacity:1;
}

.fd-textarea{
  min-height:130px;
  resize:vertical;
}

.fd-select{
  padding-right:26px;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(244,243,239,.42) 50%),
    linear-gradient(135deg, rgba(244,243,239,.42) 50%, transparent 50%);
  background-position:
    calc(100% - 14px) calc(50% - 2px),
    calc(100% - 9px) calc(50% - 2px);
  background-size:5px 5px, 5px 5px;
  background-repeat:no-repeat;
}

.fd-select option{
  color:#111;
}

/* =====================================================
  CONSENT
===================================================== */
.fd-form__row--consent{
  margin-top:6px;
}

.fd-form__row--consent label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:12px;
  line-height:1.9;
  color:var(--reserve-body-color);
}

.fd-form__row--consent input{
  margin-top:4px;
  accent-color:#b7b0a5;
}

/* =====================================================
  SUBMIT
===================================================== */
.fd-form__actions{
  margin-top:18px;
}

.fd-submit{
  position:relative;
  display:inline-block;

  border:0;
  background:transparent;
  padding:10px 0;

  font-family:var(--fb-en);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;

  color:var(--reserve-title-color);
  border-bottom:1px solid rgba(244,243,239,.20);

  cursor:pointer;
}

.fd-submit::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:0;
  height:1px;
  background:rgba(244,243,239,.68);
  transition:width .3s cubic-bezier(.22,.61,.36,1);
}

.fd-submit:hover::after{
  width:100%;
}

/* =====================================================
  LINKS
===================================================== */
.fd-form a{
  color:var(--reserve-link);
  text-decoration:none;
  transition:color .25s ease;
}

.fd-form a:hover{
  color:var(--reserve-link-hover);
}

/* =====================================================
  CF7 MESSAGE
===================================================== */
.wpcf7 form .wpcf7-response-output{
  margin:24px 0 0;
  padding-top:12px;
  border:0;
  border-top:1px solid rgba(244,243,239,.12);

  color:rgba(244,243,239,.62);
  font-size:13px;
  line-height:1.8;
}

.wpcf7-not-valid-tip{
  margin-top:6px;
  color:rgba(244,243,239,.48);
  font-size:11px;
}

.wpcf7-spinner{
  opacity:.5;
}

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

  .fb-pagehead{
    padding:64px 0 24px;
  }

  .fd-form{
    gap:22px;
  }

  .fd-input,
  .fd-select,
  .fd-textarea{
    font-size:14px;
  }
}