/* Contact */
.contact-info {
  text-align: center; margin-bottom: 48px;
}
.contact-tel { margin-bottom: 16px; }
.contact-tel a {
  font-family: var(--font-serif); font-size: 32px; font-weight: 700;
  color: var(--text); letter-spacing: .05em;
}
.contact-book {
  display: inline-block; padding: 14px 40px;
  background-color: var(--blue); color: var(--white);
  font-size: 14px; font-weight: 700; letter-spacing: .1em;
  border-radius: 6px; transition: opacity .2s;
}
.contact-book:hover { opacity: .8; }

.contact-address {
  text-align: center; margin-bottom: 48px;
  font-size: 15px; line-height: 2;
}
.contact-address a { color: var(--blue); }

.contact-form {
  max-width: 700px; margin: 0 auto;
}
.contact-form h2 {
  font-family: var(--font-serif); font-size: 24px; font-weight: 500;
  margin-bottom: 32px; text-align: center;
}

/* CF7 styling */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select {
  width: 100%; padding: 12px 16px;
  border: 1px solid #ddd; border-radius: 6px;
  font-size: 16px; font-family: var(--font-sans);
  transition: border-color .2s;
}
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  border-color: var(--blue); outline: none;
}
.wpcf7 textarea { min-height: 160px; resize: vertical; }
.wpcf7 input[type="submit"] {
  display: block; width: 100%; max-width: 300px; margin: 24px auto 0;
  padding: 14px; background-color: var(--blue); color: var(--white);
  border: none; border-radius: 6px; font-size: 16px; font-weight: 700;
  cursor: pointer; transition: opacity .2s;
}
.wpcf7 input[type="submit"]:hover { opacity: .8; }
.wpcf7 .wpcf7-acceptance { font-size: 14px; }

/* === extracted from page-contact.php === */
/* CT hero - post-spec */
.ct-hero{position:relative;height:500px;overflow:hidden;background:#1a2220}
.ct-hero__bg{position:absolute;inset:0;background:center/cover no-repeat;filter:saturate(.95)}
.ct-hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,34,32,.55) 0%,rgba(26,34,32,.3) 45%,rgba(26,34,32,.55) 100%)}
.ct-hero__inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px}
.ct-hero__label{font-family:"Playfair Display",serif;font-size:14px;letter-spacing:.6em;color:#fff;margin:0 0 22px;padding-left:.6em;text-shadow:0 2px 12px rgba(0,0,0,.5);opacity:.95}
.ct-hero__title{font-family:"Noto Serif JP",serif;font-size:56px;font-weight:500;letter-spacing:.16em;color:#fff;margin:0;text-align:center;text-shadow:0 4px 20px rgba(0,0,0,.55)}
.ct-hero__wave{position:absolute;left:0;right:0;bottom:-1px;line-height:0;z-index:3}
.ct-hero__wave svg{width:100%;height:90px;display:block;transform:scaleY(-1)}
@media(max-width:640px){.ct-hero{height:340px}.ct-hero__title{font-size:28px}}

/* CONTACT page - post-spec */
.ct-intro{background:#fff;padding:100px 24px 40px;text-align:center}
.ct-intro__label{font-family:"Playfair Display",serif;font-size:13px;letter-spacing:.5em;color:#2d4a4f;margin:0 0 18px}
.ct-intro__h{font-family:"Noto Serif JP",serif;font-size:30px;font-weight:500;color:#1a2e32;letter-spacing:.14em;margin:0 0 28px}
.ct-intro__p{max-width:700px;margin:0 auto;font-size:14px;line-height:2.1;color:#3a4252}

/* 2-col cards: TEL / BOOK */
.ct-cards{background:#fff;padding:30px 24px 80px}
.ct-cards__inner{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.ct-card{background:#fff;border:1px solid #dfd8c4;border-radius:10px;padding:44px 36px;text-align:center}
.ct-card--dark{background:#2d4a4f;border-color:#2d4a4f;color:#fff}
.ct-card__label{font-family:"Playfair Display",serif;font-size:12px;letter-spacing:.4em;color:#b8a57a;margin:0 0 14px}
.ct-card__h{font-family:"Noto Serif JP",serif;font-size:18px;color:#1a2e32;margin:0 0 22px;letter-spacing:.12em;font-weight:500}
.ct-card--dark .ct-card__h{color:#fff}
.ct-card__tel{font-family:"Playfair Display",serif;font-size:32px;letter-spacing:.08em;color:#2d4a4f;margin:0 0 10px;text-decoration:none;display:block}
.ct-card--dark .ct-card__tel{color:#fff}
.ct-card__hours{font-size:11px;letter-spacing:.2em;color:#546069;margin:0 0 22px}
.ct-card--dark .ct-card__hours{color:#e0d8c0}
.ct-card__p{font-size:13px;line-height:1.9;color:#3a4252;margin:0 0 24px}
.ct-card--dark .ct-card__p{color:#e8e2d0}
.ct-card__btn{display:inline-block;padding:14px 36px;border-radius:999px;text-decoration:none;font-family:"Noto Serif JP",serif;font-size:13px;letter-spacing:.18em;transition:all .3s}
.ct-card__btn--outline{border:1px solid #2d4a4f;color:#2d4a4f}
.ct-card__btn--outline:hover{background:#2d4a4f;color:#fff}
.ct-card__btn--white{background:#fff;color:#2d4a4f}
.ct-card__btn--white:hover{background:#f7f4eb}

/* FORM section */
.ct-form-wrap{background:#f7f4eb;padding:80px 24px}
.ct-form-inner{max-width:820px;margin:0 auto;background:#fff;border-radius:12px;padding:60px 52px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.ct-form-label{font-family:"Playfair Display",serif;font-size:13px;letter-spacing:.5em;color:#2d4a4f;margin:0 0 14px;text-align:center}
.ct-form-h{font-family:"Noto Serif JP",serif;font-size:24px;font-weight:500;color:#1a2e32;letter-spacing:.12em;margin:0 0 14px;text-align:center}
.ct-form-p{font-size:13px;line-height:1.9;color:#546069;margin:0 0 36px;text-align:center}
.ct-form-note{background:#f7f4eb;border-radius:6px;padding:18px 20px;margin:0 0 28px;font-size:12px;line-height:1.9;color:#546069}
.ct-form-note strong{color:#2d4a4f;font-family:"Noto Serif JP",serif;font-weight:500}
.ct-form-cf7{font-size:13px;color:#546069;text-align:center;padding:30px 20px;border:1px dashed #dfd8c4;border-radius:6px;font-family:monospace}

/* MAP + ADDRESS */
.ct-info{background:#fff;padding:80px 24px 100px}
.ct-info__inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:32px;align-items:stretch}
.ct-info__card{background:#fff;border:1px solid #dfd8c4;border-radius:10px;padding:40px 36px}
.ct-info__label{font-family:"Playfair Display",serif;font-size:12px;letter-spacing:.4em;color:#b8a57a;margin:0 0 14px}
.ct-info__h{font-family:"Noto Serif JP",serif;font-size:20px;color:#1a2e32;margin:0 0 20px;letter-spacing:.12em;font-weight:500}
.ct-info__row{display:grid;grid-template-columns:80px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid #ececec;font-size:13px;color:#3a4252}
.ct-info__row:last-child{border-bottom:none}
.ct-info__row strong{font-family:"Playfair Display",serif;font-size:11px;letter-spacing:.2em;color:#2d4a4f;font-weight:500;text-transform:uppercase}
.ct-info__map{border-radius:10px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.08)}
.ct-info__map iframe{width:100%;height:100%;min-height:380px;border:0;display:block}

@media(max-width:960px){
  .ct-cards__inner,.ct-info__inner{grid-template-columns:1fr;gap:20px}
  .ct-form-inner{padding:40px 28px}
}
@media(max-width:640px){
  .ct-intro__h,.ct-form-h{font-size:22px}
  .ct-card__tel{font-size:26px}
}

