/* =========================================================
   共通お問い合わせフォーム
========================================================= */

.sf-raw-page {
  min-height: 55vh;
}

.sf-raw-page > article > .post-content {
  width: min(calc(100% - 36px), 900px);

  margin: 70px auto;
}

.sf-contact-form {
  max-width: 760px;

  margin: 35px auto;
  padding: 46px 42px;

  background: #fff;
  border: 1px solid var(--sf-line);
  box-shadow: var(--sf-shadow);
}

.sf-form-intro {
  margin-bottom: 32px;

  text-align: center;
}

.sf-form-group {
  margin-bottom: 25px;
}

.sf-form-label {
  display: block;

  margin-bottom: 9px;

  font-weight: 600;
  font-size: 13px;
}

.sf-required {
  margin-left: 6px;
  padding: 2px 6px;

  color: #fff;
  background: var(--sf-green);

  font-size: 9px;
}

.sf-contact-form input[type="text"],
.sf-contact-form input[type="email"],
.sf-contact-form input[type="url"],
.sf-contact-form input[type="tel"],
.sf-contact-form select,
.sf-contact-form textarea {
  width: 100%;

  padding: 14px 15px;

  color: var(--sf-ink);
  background: #fbfaf7;
  border: 1px solid var(--sf-line);
  border-radius: 0;
}

.sf-contact-form textarea {
  min-height: 190px;

  resize: vertical;
}

.sf-contact-form input:focus,
.sf-contact-form select:focus,
.sf-contact-form textarea:focus {
  outline: 2px solid rgba(47,95,87,.2);

  border-color: var(--sf-green);
}

.sf-form-privacy {
  padding: 18px;

  background: var(--sf-ivory);

  font-size: 12px;
}

.sf-form-submit {
  margin-top: 30px;

  text-align: center;
}

.sf-contact-form input[type="submit"],
.sf-submit-btn {
  min-width: 250px;
  min-height: 54px;

  color: #fff;
  background: var(--sf-green);
  border: 0;

  cursor: pointer;
}

.sf-contact-form input[type="submit"]:hover {
  background: var(--sf-green-dark);
}

.wpcf7-not-valid-tip {
  color: #a64639;

  font-size: 11px;
}

.wpcf7-response-output {
  padding: 14px !important;

  border-color: var(--sf-gold) !important;
}

.sf-web-contact-page,
.sf-thanks-box {
  padding: 55px;

  background: #fff;
  border: 1px solid var(--sf-line);
}

.sf-wc-header,
.sf-thanks-intro {
  margin-bottom: 42px;

  text-align: center;
}

.sf-wc-en,
.sf-thanks-kicker {
  color: var(--sf-gold);

  font-size: 10px;
  letter-spacing: .18em;
}

.sf-wc-header h1,
.sf-thanks-title {
  font-size: clamp(30px,4vw,46px);
}

.sf-wc-form-section {
  margin-top: 45px;
}

.sf-wc-note,
.sf-thanks-note {
  margin: 28px 0;
  padding: 20px;

  background: var(--sf-ivory);
  border-left: 2px solid var(--sf-gold);
}

.sf-thanks-links {
  display: grid;

  grid-template-columns: repeat(2,1fr);
  gap: 15px;

  margin: 35px 0;
}

.sf-thanks-link {
  min-height: 120px;

  position: relative;

  padding: 24px;

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

.sf-thanks-link-label,
.sf-thanks-link-text {
  display: block;
}

.sf-thanks-link-label {
  color: var(--sf-gold);

  font-size: 9px;
  letter-spacing: .15em;
}

.sf-thanks-link-arrow {
  position: absolute;
  right: 20px;
  bottom: 16px;
}

/* =========================================================
   1.8.5 — dedicated editorial thank-you page.
========================================================= */

.sf-thanks-page {
  color: #173f38;
  background: #f5efe5;
  border-top: 3px solid #d0a65b;
}

.sf-thanks-hero {
  padding: 82px 24px 76px;

  background: linear-gradient(125deg,#123f37 0%,#1d5b50 70%,#896254 140%);
}

.sf-thanks-hero__inner {
  width: min(100%,820px);

  margin: auto;

  text-align: center;
}

.sf-thanks-hero__eyebrow {
  margin: 0 0 25px;

  color: #e5c47f;

  font: 700 11px/1.4 var(--sf-sans);
  letter-spacing: .28em;
}

.sf-thanks-hero__mark {
  display: grid;

  place-items: center;

  width: 70px;
  height: 70px;

  margin: 0 auto 25px;

  color: #173f38;
  background: #e6c681;
  border: 7px solid rgba(255,255,255,.1);
  border-radius: 50%;
  background-clip: padding-box;

  font-size: 27px;
}

.sf-thanks-hero h1 {
  margin: 0;

  color: #fffaf2;

  font: 500 clamp(32px,4vw,48px)/1.45 var(--sf-serif);
  letter-spacing: .06em;
}

.sf-thanks-hero__lead {
  margin: 25px 0 0;

  color: rgba(255,255,255,.82);

  font-size: 16px;
  line-height: 2;
}

.sf-thanks-response {
  width: min(100%,650px);

  margin: 38px auto 0;
  padding: 23px 28px;

  background: rgba(255,250,242,.08);
  border: 1px solid rgba(230,198,129,.55);
}

.sf-thanks-response small,
.sf-thanks-response strong,
.sf-thanks-response span {
  display: block;
}

.sf-thanks-response small {
  color: #e6c681;

  font-size: 10px;
  letter-spacing: .22em;
}

.sf-thanks-response strong {
  margin-top: 9px;

  color: #fff;

  font: 600 18px/1.7 var(--sf-serif);
}

.sf-thanks-response span {
  margin-top: 8px;

  color: rgba(255,255,255,.7);

  font-size: 12px;
  line-height: 1.8;
}

.sf-thanks-message {
  width: min(calc(100% - 40px),1040px);

  margin: 0 auto;
  padding: 72px 0 88px;

  text-align: center;
}

.sf-thanks-section-label {
  margin: 0 0 12px;

  color: #aa704f;

  font-size: 10px;
  font-weight: 700;
  letter-spacing: .24em;
}

.sf-thanks-message>h2 {
  margin: 0;

  color: #173f38;

  font: 500 31px/1.55 var(--sf-serif);
}

.sf-thanks-message>h2::after {
  content: "";
  display: block;

  width: 55px;
  height: 1px;

  margin: 20px auto;

  background: #c99b45;
}

.sf-thanks-message>p:not(.sf-thanks-section-label) {
  margin: 0;

  color: #66736f;

  font-size: 14px;
  line-height: 2;
}

.sf-thanks-themes {
  display: grid;

  grid-template-columns: repeat(2,1fr);
  gap: 12px;

  margin-top: 38px;

  text-align: left;
}

.sf-thanks-themes a {
  display: grid;

  grid-template-columns: 42px minmax(0,1fr) 30px;
  gap: 15px;
  align-items: center;

  min-height: 104px;

  padding: 20px 24px;

  color: #173f38;
  background: #fffdf8;
  border: 1px solid #ddd1bf;

  transition: transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

.sf-thanks-themes a:first-child {
  background: #f4e3d8;
}

.sf-thanks-themes a:last-child {
  grid-column: 1/-1;
}

.sf-thanks-themes a:hover {
  color: #173f38;
  border-color: #c99b45;
  box-shadow: 0 14px 30px rgba(25,57,50,.1);

  transform: translateY(-4px);
}

.sf-thanks-themes b {
  color: #b66f50;

  font-size: 11px;
}

.sf-thanks-themes span,
.sf-thanks-themes strong,
.sf-thanks-themes small {
  display: block;
}

.sf-thanks-themes strong {
  font: 600 17px/1.5 var(--sf-serif);
}

.sf-thanks-themes small {
  margin-top: 4px;

  color: #73807b;

  font-size: 11px;
  line-height: 1.6;
}

.sf-thanks-themes i {
  color: #b98a37;

  font-style: normal;
  font-size: 18px;
}

.sf-thanks-home {
  display: flex;

  align-items: center;
  justify-content: space-between;

  width: min(100%,620px);
  min-height: 86px;

  margin: 34px auto 0;
  padding: 18px 27px 18px 31px;

  color: #fff;
  background: #173f38;
  border: 1px solid #173f38;

  text-align: left;

  transition: transform .25s ease,
    box-shadow .25s ease,
    background-color .25s ease;
}

.sf-thanks-home:hover {
  color: #fff;
  background: #245b51;
  box-shadow: 0 14px 28px rgba(23,63,56,.18);

  transform: translateY(-4px);
}

.sf-thanks-home small,
.sf-thanks-home strong {
  display: block;
}

.sf-thanks-home small {
  margin-bottom: 5px;

  color: #e6c681;

  font-size: 9px;
  letter-spacing: .2em;
}

.sf-thanks-home strong {
  font: 600 15px/1.5 var(--sf-serif);
}

.sf-thanks-home i {
  display: grid;

  place-items: center;

  width: 39px;
  height: 39px;

  color: #173f38;
  background: #e6c681;
  border-radius: 50%;

  font-style: normal;
}

.sf-thanks-mobile-break {
  display: none;
}

.sf-thanks-web-links {
  display: grid;

  grid-template-columns: repeat(2,1fr);
  gap: 14px;

  margin-top: 38px;

  text-align: left;
}

.sf-thanks-web-links a {
  position: relative;

  min-height: 145px;

  padding: 29px 66px 26px 29px;

  color: #173f38;
  background: #fffdf8;
  border: 1px solid #d8cab5;

  transition: transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

.sf-thanks-web-links a:first-child {
  background: #f4e3d8;
}

.sf-thanks-web-links a:hover {
  color: #173f38;
  border-color: #c99b45;
  box-shadow: 0 14px 30px rgba(25,57,50,.1);

  transform: translateY(-4px);
}

.sf-thanks-web-links small,
.sf-thanks-web-links strong {
  display: block;
}

.sf-thanks-web-links small {
  color: #ad704f;

  font-size: 9px;
  font-weight: 700;
  letter-spacing: .2em;
}

.sf-thanks-web-links strong {
  margin-top: 14px;

  font: 600 18px/1.6 var(--sf-serif);
}

.sf-thanks-web-links span {
  position: absolute;
  right: 25px;
  bottom: 25px;
  display: grid;

  place-items: center;

  width: 35px;
  height: 35px;

  color: #173f38;
  background: #e6c681;
  border-radius: 50%;
}

@media (max-width:767px) {
  .sf-thanks-hero {
    padding: 59px 20px 54px;
  }

  .sf-thanks-hero__eyebrow {
    font-size: 9px;
    letter-spacing: .2em;
  }

  .sf-thanks-hero__mark {
    width: 62px;
    height: 62px;

    margin-bottom: 21px;

    font-size: 23px;
  }

  .sf-thanks-hero h1 {
    font-size: 30px;
    line-height: 1.55;
  }

  .sf-thanks-mobile-break {
    display: block;
  }

  .sf-thanks-hero__lead {
    font-size: 14px;
  }

  .sf-thanks-response {
    margin-top: 29px;
    padding: 20px 17px;
  }

  .sf-thanks-response strong {
    font-size: 16px;
  }

  .sf-thanks-message {
    width: calc(100% - 28px);

    padding: 54px 0 65px;
  }

  .sf-thanks-message>h2 {
    font-size: 25px;
  }

  .sf-thanks-message>p:not(.sf-thanks-section-label) {
    font-size: 13px;
  }

  .sf-thanks-themes {
    grid-template-columns: 1fr;
    gap: 9px;

    margin-top: 29px;
  }

  .sf-thanks-themes a,
  .sf-thanks-themes a:last-child {
    grid-column: auto;

    min-height: 86px;

    padding: 16px 17px;
  }

  .sf-thanks-web-links {
    grid-template-columns: 1fr;
    gap: 9px;

    margin-top: 29px;
  }

  .sf-thanks-web-links a {
    min-height: 116px;

    padding: 23px 58px 21px 21px;
  }

  .sf-thanks-web-links strong {
    font-size: 16px;
  }

  .sf-thanks-home {
    min-height: 78px;

    padding: 16px 17px 16px 20px;
  }

  .sf-thanks-home strong {
    font-size: 14px;
  }
}

/* =========================================================
   Magazine-style Web contact hero and return CTA
========================================================= */

.sf-web-contact-page {
  padding: 0;

  background: transparent;
  border: 0;
}

.sf-wc-header {
  position: relative;

  margin-bottom: 78px;
  padding: 72px 68px;

  overflow: hidden;

  text-align: left;

  background: linear-gradient(135deg,#fbfaf6 0%,#f7f6f1 68%,#f1f2ed 100%);
  border: 1px solid #e5dfd4;
}

.sf-wc-header::before,
.sf-wc-header::after {
  content: "";
  position: absolute;
  top: 50%;

  border: 1px solid rgba(72,105,94,.13);
  border-radius: 50%;

  transform: translateY(-50%);
}

.sf-wc-header::before {
  width: 300px;
  height: 300px;

  right: -120px;
}

.sf-wc-header::after {
  width: 190px;
  height: 190px;

  right: -65px;

  border-color: rgba(193,157,90,.18);
}

.sf-wc-en {
  position: relative;
  z-index: 2;

  margin: 0 0 24px;

  color: #a67e39;

  font: 600 10px/1 var(--sf-serif);
  letter-spacing: .34em;
  text-align: left;
}

.sf-wc-header h1 {
  position: relative;
  z-index: 2;

  max-width: 650px;

  margin: 0 0 30px;
  padding: 0;

  font: 500 clamp(30px,4vw,42px)/1.55 var(--sf-serif);
  letter-spacing: .04em;
  text-align: left;
}

.sf-wc-header h1::after {
  content: "";
  display: block;

  width: 120px;
  height: 2px;

  margin-top: 27px;

  background: linear-gradient(90deg,#58776e,#789086 45%,#c7a461 80%,#d4ae54);
}

.sf-wc-lead {
  position: relative;
  z-index: 2;

  max-width: 600px;

  margin: 0;

  color: var(--sf-muted);

  font-size: 14px;
  line-height: 2;
}

.sf-wc-intro,
.sf-wc-form-section,
.sf-wc-note {
  max-width: 760px;

  margin-left: auto;
  margin-right: auto;
}

.sf-wc-back {
  width: 100%;
  height: 190px;

  margin: 75px auto 0;

  overflow: hidden;
}

.sf-wc-back-card {
  position: relative;
  display: flex;

  align-items: center;

  width: 100%;
  height: 190px;

  padding: 44px 68px;

  color: var(--sf-ink);

  text-decoration: none;

  background: linear-gradient(135deg,#fbfaf6,#f5f3ed);
  border: 1px solid var(--sf-line);

  overflow: hidden;

  transition: transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease;
}

.sf-wc-back-card::before,
.sf-wc-back-card::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -112px;

  width: 250px;
  height: 250px;

  border: 1px solid rgba(72,105,94,.11);
  border-radius: 50%;

  transform: translateY(-50%);
}

.sf-wc-back-card::after {
  right: -61px;

  width: 145px;
  height: 145px;

  border-color: rgba(193,157,90,.17);
}

.sf-wc-back-arrow {
  position: relative;
  z-index: 2;
  display: grid;

  place-items: center;
  flex: 0 0 58px;

  width: 58px;
  height: 58px;

  margin-right: 38px;

  color: #9b752f;
  border: 1px solid #d2b77f;
  border-radius: 50%;

  transition: transform .28s ease,
    background-color .28s ease;
}

.sf-wc-back-content {
  position: relative;
  z-index: 2;
}

.sf-wc-back-en {
  margin: 0 0 9px;

  color: #a67e39;

  font: 600 10px/1.3 var(--sf-serif);
  letter-spacing: .27em;
}

.sf-wc-back-title {
  margin: 0;

  font: 500 22px/1.55 var(--sf-serif);
}

.sf-wc-back-card:hover {
  color: var(--sf-ink);
  border-color: var(--sf-gold-soft);
  box-shadow: 0 16px 38px rgba(28,58,51,.1);

  transform: translateY(-5px);
}

.sf-wc-back-card:hover .sf-wc-back-arrow {
  color: #fff;
  background: var(--sf-green);

  transform: translateX(-5px);
}

.sf-contact-form input[type="submit"] {
  transition: transform .25s ease,
    box-shadow .25s ease,
    background-color .25s ease;
}

.sf-contact-form input[type="submit"]:hover {
  box-shadow: 0 13px 26px rgba(18,68,58,.22);

  transform: translateY(-4px);
}

@media (max-width: 767px) {
  .sf-raw-page > article > .post-content {
    width: min(calc(100% - 28px),900px);

    margin: 35px auto;
  }

  .sf-contact-form,
  .sf-thanks-box {
    padding: 30px 20px;
  }

  .sf-thanks-links {
    grid-template-columns: 1fr;
  }

  .sf-wc-header {
    margin-bottom: 48px;
    padding: 48px 24px 45px;
  }

  .sf-wc-header::before {
    width: 190px;
    height: 190px;

    right: -115px;
  }

  .sf-wc-header::after {
    width: 115px;
    height: 115px;

    right: -70px;
  }

  .sf-wc-header h1 {
    font-size: 27px;
  }

  .sf-wc-lead br {
    display: none;
  }

  .sf-wc-back {
    height: 150px;

    margin-top: 48px;
  }

  .sf-wc-back-card {
    height: 150px;

    padding: 28px 22px;
  }

  .sf-wc-back-arrow {
    flex-basis: 46px;

    width: 46px;
    height: 46px;

    margin-right: 18px;
  }

  .sf-wc-back-en {
    white-space: normal;
    font-size: 8px;
    letter-spacing: .18em;
  }

  .sf-wc-back-title {
    font-size: 18px;
  }
}

/* =========================================================
   v1.5.3: replace malformed editor markup with one theme-owned return card.
========================================================= */

.sf39-web-contact-legacy .sf-wc-back {
  display: none !important;
}

.sf39-web-return-wrap {
  width: min(calc(100% - 36px), 900px);

  margin: -20px auto 78px;
}

.sf39-web-return {
  display: grid;

  grid-template-columns: minmax(0,1fr) 330px;
  gap: 52px;
  align-items: center;

  min-height: 190px;

  padding: 44px 52px;

  color: var(--sf-ink);
  background: #fffdf8;
  border: 1px solid var(--sf-line);

  text-decoration: none;

  box-shadow: 0 16px 38px rgba(28,58,51,.07);

  transition: transform .25s ease,
    box-shadow .25s ease;
}

.sf39-web-return:hover {
  color: var(--sf-ink);

  transform: translateY(-4px);

  box-shadow: 0 19px 42px rgba(28,58,51,.11);
}

.sf39-web-return__copy small,
.sf39-web-return__copy strong,
.sf39-web-return__copy em {
  display: block;
}

.sf39-web-return__copy small {
  margin-bottom: 12px;

  color: #a67e39;

  font: 600 10px/1.3 var(--sf-serif);
  letter-spacing: .25em;
}

.sf39-web-return__copy strong {
  color: #064b44;

  font: 500 27px/1.55 var(--sf-serif);
}

.sf39-web-return__copy em {
  margin-top: 9px;

  color: var(--sf-muted);

  font-size: 12px;
  font-style: normal;
  line-height: 1.7;
}

.sf39-web-return__button {
  display: flex;

  align-items: center;
  justify-content: space-between;

  min-height: 66px;

  padding: 15px 24px;

  color: #063f39;
  background: #e7ca87;

  font-size: 14px;
  font-weight: 700;

  box-shadow: 0 10px 25px rgba(20,53,47,.12);
}

.sf39-web-return__button b {
  transition: transform .24s ease;
}

.sf39-web-return:hover .sf39-web-return__button b {
  transform: translateX(-5px);
}

@media (max-width: 767px) {
  .sf39-web-return-wrap {
    width: min(calc(100% - 28px),900px);

    margin: -4px auto 52px;
  }

  .sf39-web-return {
    grid-template-columns: 1fr;
    gap: 25px;

    min-height: 0;

    padding: 32px 24px 28px;
  }

  .sf39-web-return__copy strong {
    font-size: 23px;
  }

  .sf39-web-return__button {
    width: 100%;
    min-height: 58px;
  }
}

/* =========================================================
   v1.5.1: use the existing link elements only; prevents duplicate CTA rows.
========================================================= */

.sf-wc-back {
  height: auto;

  margin-top: 76px;

  overflow: visible;
}

.sf-wc-back-card {
  display: flex;

  align-items: center;
  justify-content: space-between;
  gap: 54px;

  min-height: 190px;
  height: auto;

  padding: 46px 54px;

  background: #fffdf8;
  box-shadow: 0 16px 38px rgba(28,58,51,.07);
}

.sf-wc-back-card::before,
.sf-wc-back-card::after {
  content: none;
  display: none;
}

.sf-wc-back-content {
  flex: 1 1 auto;

  min-width: 0;
}

.sf-wc-back-en {
  margin-bottom: 14px;

  font-size: 11px;
  letter-spacing: .25em;
}

.sf-wc-back-title {
  color: #064b44;

  font-size: 30px;
}

.sf-wc-back-arrow {
  position: static;
  display: flex;

  align-items: center;
  justify-content: space-between;
  flex: 0 0 330px;

  width: 330px;
  height: 66px;

  margin: 0;
  padding: 0 24px;

  color: #063f39;
  background: #e7ca87;
  border: 0;
  border-radius: 0;

  font-size: 18px;

  box-shadow: 0 10px 25px rgba(20,53,47,.12);

  transform: none;
}

.sf-wc-back-arrow::before {
  content: "Web制作ページへ戻る";

  font-size: 14px;
  font-weight: 700;
}

.sf-wc-back-card:hover .sf-wc-back-arrow {
  color: #063f39;
  background: #e7ca87;

  transform: translateY(-4px);

  box-shadow: 0 14px 28px rgba(20,53,47,.16);
}

@media (max-width: 767px) {
  .sf-wc-back {
    height: auto;

    margin-top: 52px;
  }

  .sf-wc-back-card {
    align-items: stretch;
    flex-direction: column;
    gap: 26px;

    min-height: 0;

    padding: 34px 24px 30px;
  }

  .sf-wc-back-title {
    font-size: 24px;
  }

  .sf-wc-back-arrow {
    flex: 0 0 58px;

    width: 100%;
    height: 58px;
  }

  .sf-wc-back-card:hover .sf-wc-back-arrow {
    transform: translateY(-4px);
  }
}

/* =========================================================
   v1.5.9: one consistent width from hero through form and return panel.
========================================================= */

.sf39-web-contact-legacy .sf-raw-page>article>.post-content {
  width: min(calc(100% - 48px),1080px);
}

.sf39-web-contact-legacy .sf-wc-intro,
.sf39-web-contact-legacy .sf-wc-form-section,
.sf39-web-contact-legacy .sf-wc-note,
.sf39-web-contact-legacy .sf-contact-form {
  width: 100%;
  max-width: none;
}

.sf39-web-contact-legacy .sf-wc-header h1 {
  max-width: 760px;

  font-size: clamp(30px,3.5vw,40px);
  text-wrap: balance;
}

.sf39-web-contact-legacy .sf-wc-intro {
  padding-inline: 52px;
}

.sf39-web-contact-legacy .sf-wc-note {
  padding: 28px 32px;
}

.sf39-web-contact-legacy .sf-contact-form {
  padding: 52px 56px;
}

.sf39-web-return-wrap {
  width: min(calc(100% - 48px),1080px);
}

@media (max-width:767px) {
  .sf39-web-contact-legacy .sf-raw-page>article>.post-content,
  .sf39-web-return-wrap {
    width: calc(100% - 28px);
  }

  .sf39-web-contact-legacy .sf-wc-intro {
    padding-inline: 4px;
  }

  .sf39-web-contact-legacy .sf-wc-note {
    padding: 22px 19px;
  }

  .sf39-web-contact-legacy .sf-contact-form {
    padding: 30px 20px;
  }
}

/* =========================================================
   v1.6.0: editorial service guide and a focused, comfortably sized form.
========================================================= */

.sf39-web-contact-legacy .sf-raw-page>article>.post-content {
  width: min(calc(100% - 48px),1040px);
}

.sf39-web-contact-legacy .sf-wc-header {
  margin-bottom: 64px;
}

.sf39-web-contact-legacy .sf-wc-intro {
  position: relative;

  max-width: 820px;

  margin: 0 auto 64px;
  padding: 40px 44px 40px 48px;

  background: #fffdf8;
  border: 1px solid #ded5c7;
  border-left: 4px solid #c8a35a;
  box-shadow: 0 16px 38px rgba(27,61,53,.07);

  font-size: 14px;
  line-height: 2;
}

.sf39-wc-guide {
  max-width: 980px;

  margin: 0 auto 76px;
}

.sf39-wc-guide>header {
  text-align: center;
}

.sf39-wc-guide>header>p {
  margin: 0 0 12px;

  color: #a66d55;

  font: 700 10px/1.4 var(--sf-sans);
  letter-spacing: .22em;
}

.sf39-wc-guide>header h2 {
  margin: 0 0 12px;

  color: #074c44;

  font: 500 clamp(25px,3vw,34px)/1.55 var(--sf-serif);
}

.sf39-wc-guide>header span {
  color: var(--sf-muted);

  font-size: 12px;
}

.sf39-wc-guide__grid {
  display: grid;

  grid-template-columns: repeat(3,1fr);
  gap: 16px;

  margin-top: 34px;
}

.sf39-wc-guide__grid>div {
  min-height: 205px;

  padding: 29px 26px;

  background: #fffdf8;
  border: 1px solid #ded5c7;
  box-shadow: 0 12px 28px rgba(27,61,53,.055);
}

.sf39-wc-guide__grid>div:nth-child(2) {
  background: #fbf2ea;
}

.sf39-wc-guide__grid b {
  color: #b8735c;

  font: italic 24px/1 Georgia,serif;
}

.sf39-wc-guide__grid h3 {
  margin: 18px 0 10px;

  color: #074c44;

  font: 600 18px/1.55 var(--sf-serif);
}

.sf39-wc-guide__grid p {
  margin: 0;

  color: #686a65;

  font-size: 12px;
  line-height: 1.9;
}

.sf39-web-contact-legacy .sf-wc-form-section {
  max-width: 880px;

  margin: 0 auto;
}

.sf39-web-contact-legacy .sf-contact-form {
  max-width: 820px;

  margin: 34px auto;
  padding: 46px 48px;

  box-shadow: 0 20px 46px rgba(24,58,50,.09);
}

.sf39-web-contact-legacy .sf-wc-note {
  max-width: 820px;

  margin: 30px auto;
  padding: 25px 28px;
}

.sf39-web-return-wrap {
  width: min(calc(100% - 48px),1040px);
}

@media (max-width:767px) {
  .sf39-web-contact-legacy .sf-raw-page>article>.post-content,
  .sf39-web-return-wrap {
    width: calc(100% - 28px);
  }

  .sf39-web-contact-legacy .sf-wc-header {
    margin-bottom: 42px;
  }

  .sf39-web-contact-legacy .sf-wc-intro {
    margin-bottom: 52px;
    padding: 29px 22px 29px 25px;

    font-size: 13px;
  }

  .sf39-wc-guide {
    margin-bottom: 56px;
  }

  .sf39-wc-guide>header {
    padding-inline: 8px;
  }

  .sf39-wc-guide__grid {
    grid-template-columns: 1fr;
    gap: 12px;

    margin-top: 27px;
  }

  .sf39-wc-guide__grid>div {
    min-height: 0;

    padding: 24px 22px;
  }

  .sf39-web-contact-legacy .sf-contact-form {
    padding: 32px 20px;
  }
}

/* =========================================================
   v1.6.2: stronger service cards and a centred form introduction.
========================================================= */

.sf39-wc-guide {
  position: relative;

  padding: 0 8px;
}

.sf39-wc-guide::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -51px;

  width: 1px;
  height: 27px;

  background: linear-gradient(#b8735c,#e0c38c);
}

.sf39-wc-guide__grid {
  gap: 0;

  border: 1px solid #d7cdbd;
  box-shadow: 0 22px 50px rgba(24,58,50,.09);
}

.sf39-wc-guide__grid>div {
  position: relative;

  min-height: 238px;

  padding: 35px 30px;

  border: 0;
  border-right: 1px solid #d7cdbd;
  box-shadow: none;

  overflow: hidden;
}

.sf39-wc-guide__grid>div:last-child {
  border-right: 0;
}

.sf39-wc-guide__grid>div::after {
  content: "";
  position: absolute;
  right: -42px;
  bottom: -42px;

  width: 110px;
  height: 110px;

  border: 1px solid rgba(184,115,92,.17);
  border-radius: 50%;
}

.sf39-wc-guide__grid>div:nth-child(2) {
  color: #fff;
  background: linear-gradient(145deg,#064f47,#0a665a);
}

.sf39-wc-guide__grid>div:nth-child(2)::after {
  border-color: rgba(224,195,140,.26);
}

.sf39-wc-guide__grid>div:nth-child(2) b {
  color: #e0c38c;
}

.sf39-wc-guide__grid>div:nth-child(2) h3 {
  color: #fff;
}

.sf39-wc-guide__grid>div:nth-child(2) p {
  color: rgba(255,255,255,.76);
}

.sf39-wc-guide__grid b {
  display: flex;

  align-items: center;
  gap: 12px;
}

.sf39-wc-guide__grid b::after {
  content: "";

  width: 34px;
  height: 1px;

  background: currentColor;
  opacity: .55;
}

.sf39-wc-guide__grid h3 {
  margin-top: 35px;

  font-size: 20px;
}

.sf39-web-contact-legacy .sf-wc-form-section {
  position: relative;

  max-width: 880px;

  margin: 0 auto;
  padding: 50px 30px 10px;

  background: linear-gradient(180deg,#f0ebe2 0,#f7f4ec 210px,transparent 210px);
  border-top: 1px solid #dfd4c3;

  text-align: center;
}

.sf39-web-contact-legacy .sf-wc-form-section>.sf-wc-en {
  display: inline-flex;

  margin: 0 0 17px;
  padding: 7px 13px;

  color: #e0c38c;
  background: #064f47;
  border-radius: 999px;

  font-size: 9px;
  letter-spacing: .22em;
}

.sf39-web-contact-legacy .sf-wc-form-section>h2 {
  margin: 0 auto 15px;

  color: #064f47;

  font: 500 clamp(26px,3vw,35px)/1.55 var(--sf-serif);
}

.sf39-web-contact-legacy .sf-wc-form-section>p {
  max-width: 600px;

  margin: 0 auto 8px;

  color: #68645c;

  font-size: 13px;
  line-height: 1.9;
}

.sf39-web-contact-legacy .sf-wc-form-section>p br {
  display: none;
}

.sf39-web-contact-legacy .sf-contact-form {
  margin-top: 36px;

  text-align: left;

  background: #fffefa;
  border-top: 4px solid #e0c38c;
}

@media (max-width:767px) {
  .sf39-wc-guide {
    padding: 0;
  }

  .sf39-wc-guide::after {
    bottom: -42px;

    height: 22px;
  }

  .sf39-wc-guide__grid {
    gap: 12px;

    border: 0;
    box-shadow: none;
  }

  .sf39-wc-guide__grid>div {
    min-height: 0;

    padding: 28px 23px;

    border: 1px solid #d7cdbd !important;
    box-shadow: 0 10px 25px rgba(24,58,50,.06);
  }

  .sf39-wc-guide__grid h3 {
    margin-top: 22px;

    font-size: 18px;
  }

  .sf39-web-contact-legacy .sf-wc-form-section {
    padding: 43px 12px 6px;

    background: linear-gradient(180deg,#f0ebe2 0,#f7f4ec 190px,transparent 190px);
  }

  .sf39-web-contact-legacy .sf-wc-form-section>h2 {
    font-size: 25px;
  }
}

/* =========================================================
   v1.6.3: remove repeated explanation and rebuild the page rhythm.
========================================================= */

.sf39-web-contact-legacy .sf-wc-header {
  position: relative;

  min-height: 330px;

  margin: 0 0 78px;
  padding: 68px 72px;

  display: flex;

  flex-direction: column;
  justify-content: center;

  color: #fff;
  background: linear-gradient(118deg,#033e39 0%,#075b51 62%,#6f8f85 100%);
  border: 0;
  border-bottom: 4px solid #e0c38c;
}

.sf39-web-contact-legacy .sf-wc-header::before {
  content: "WEB";
  top: auto;
  right: 42px;
  bottom: -53px;

  width: auto;
  height: auto;

  color: rgba(255,255,255,.045);
  border: 0;
  border-radius: 0;

  font: italic 210px/1 Georgia,serif;

  transform: none;
}

.sf39-web-contact-legacy .sf-wc-header::after {
  width: 220px;
  height: 220px;

  right: 90px;

  border-color: rgba(224,195,140,.22);
}

.sf39-web-contact-legacy .sf-wc-en {
  color: #e0c38c;
}

.sf39-web-contact-legacy .sf-wc-header h1 {
  max-width: 760px;

  margin-bottom: 24px;

  color: #fff;

  font-size: clamp(38px,4.2vw,53px);
  line-height: 1.5;
  text-shadow: none;
}

.sf39-web-contact-legacy .sf-wc-header h1::after {
  width: 86px;

  background: linear-gradient(90deg,#e0c38c,#b8735c);
}

.sf39-web-contact-legacy .sf-wc-lead {
  max-width: 620px;

  color: rgba(255,255,255,.8);
}

.sf39-web-contact-legacy .sf-wc-intro {
  display: none;
}

.sf39-wc-guide {
  margin-bottom: 74px;
}

.sf39-wc-guide::after {
  display: none;
}

.sf39-wc-guide>header {
  margin-bottom: 36px;
}

.sf39-wc-guide__grid {
  margin-top: 0;
}

.sf39-web-contact-legacy .sf-wc-form-section {
  max-width: 880px;

  padding: 0 30px 10px;

  background: transparent;
  border: 0;
}

.sf39-web-contact-legacy .sf-wc-form-section .sf-form-intro {
  position: relative;

  max-width: 760px;

  margin: 0 auto;
  padding: 38px 45px 40px;

  text-align: center;

  background: linear-gradient(135deg,#f0ebe2,#f8f4ec);
  border-top: 3px solid #e0c38c;
  border-bottom: 1px solid #d8cdb9;
  box-shadow: 0 13px 30px rgba(28,59,52,.055);
}

.sf39-web-contact-legacy .sf-wc-form-section .sf-form-intro::before {
  content: "CONTACT FORM";
  display: inline-flex;

  margin-bottom: 18px;
  padding: 7px 14px;

  color: #e0c38c;
  background: #064f47;
  border-radius: 999px;

  font: 700 9px/1.3 var(--sf-sans);
  letter-spacing: .22em;
}

.sf39-web-contact-legacy .sf-wc-form-section .sf-form-intro .sf-wc-en {
  display: none;
}

.sf39-web-contact-legacy .sf-wc-form-section .sf-form-intro h2 {
  margin: 0 0 13px;

  color: #064f47;

  font: 500 clamp(25px,3vw,34px)/1.55 var(--sf-serif);
}

.sf39-web-contact-legacy .sf-wc-form-section .sf-form-intro p {
  max-width: 540px;

  margin: 0 auto;

  color: #68645c;

  font-size: 13px;
  line-height: 1.85;
}

.sf39-web-contact-legacy .sf-wc-form-section .sf-form-intro p br {
  display: none;
}

.sf39-web-contact-legacy .sf-contact-form {
  margin-top: 22px;

  border-top: 0;
}

@media (max-width:767px) {
  .sf39-web-contact-legacy .sf-wc-header {
    min-height: 380px;

    margin-bottom: 58px;
    padding: 52px 25px;
  }

  .sf39-web-contact-legacy .sf-wc-header::before {
    right: -20px;
    bottom: -25px;

    font-size: 115px;
  }

  .sf39-web-contact-legacy .sf-wc-header::after {
    width: 140px;
    height: 140px;

    right: -45px;
  }

  .sf39-web-contact-legacy .sf-wc-header h1 {
    font-size: 32px;
  }

  .sf39-web-contact-legacy .sf-wc-header h1::after {
    margin-top: 21px;
  }

  .sf39-web-contact-legacy .sf-wc-lead {
    font-size: 12px;
  }

  .sf39-wc-guide {
    margin-bottom: 55px;
  }

  .sf39-wc-guide>header {
    margin-bottom: 27px;
  }

  .sf39-web-contact-legacy .sf-wc-form-section {
    padding-inline: 0;
  }

  .sf39-web-contact-legacy .sf-wc-form-section .sf-form-intro {
    padding: 31px 21px 33px;
  }

  .sf39-web-contact-legacy .sf-contact-form {
    margin-top: 14px;
  }
}
