:root{
  --cm-contact-bg:#f4f1ea;
  --cm-contact-ink:#0d0d0d;
  --cm-contact-muted:#6b675f;
  --cm-contact-line:rgba(13,13,13,.14);
  --cm-contact-soft:#fffdf8;
  --cm-contact-accent:#173f34;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--cm-contact-bg);
  color:var(--cm-contact-ink);
  font-family:"Inter","Noto Sans JP",system-ui,sans-serif;
  margin:0;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.cm-contact-header{
  align-items:center;
  border-bottom:1px solid var(--cm-contact-line);
  display:flex;
  justify-content:space-between;
  min-height:64px;
  padding:0 clamp(18px,4vw,56px);
}
.cm-contact-brand{
  font-family:"Barlow Condensed","Inter","Noto Sans JP",sans-serif;
  font-size:18px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cm-contact-nav{
  display:flex;
  gap:clamp(14px,2.5vw,34px);
}
.cm-contact-nav a{
  color:var(--cm-contact-muted);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cm-contact-hero{
  display:grid;
  gap:clamp(34px,6vw,88px);
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);
  min-height:calc(100svh - 64px);
  padding:clamp(54px,9vw,120px) clamp(18px,5vw,72px);
  position:relative;
  overflow:hidden;
}
.cm-contact-watermark{
  bottom:-.12em;
  color:rgba(13,13,13,.045);
  font-family:"Barlow Condensed","Inter","Noto Sans JP",sans-serif;
  font-size:clamp(88px,21vw,360px);
  font-weight:900;
  left:clamp(12px,4vw,58px);
  letter-spacing:-.06em;
  line-height:.78;
  position:absolute;
  white-space:nowrap;
  z-index:0;
}
.cm-contact-copy,
.cm-contact-panel{
  position:relative;
  z-index:1;
}
.cm-contact-kicker{
  color:var(--cm-contact-accent);
  font-family:"Barlow Condensed","Inter","Noto Sans JP",sans-serif;
  font-size:13px;
  font-weight:900;
  letter-spacing:.22em;
  margin:0 0 18px;
  text-transform:uppercase;
}
.cm-contact-title{
  font-family:"Barlow Condensed","Inter","Noto Sans JP",sans-serif;
  font-size:clamp(58px,12vw,176px);
  font-weight:900;
  letter-spacing:-.055em;
  line-height:.78;
  margin:0 0 30px;
  text-transform:lowercase;
}
.cm-contact-lead{
  color:var(--cm-contact-muted);
  font-size:clamp(15px,1.4vw,18px);
  line-height:2.05;
  margin:0;
  max-width:680px;
}
.cm-contact-route{
  border-top:1px solid var(--cm-contact-line);
  display:grid;
  gap:0;
  margin-top:clamp(34px,7vw,86px);
  max-width:780px;
}
.cm-contact-route a{
  align-items:baseline;
  border-bottom:1px solid var(--cm-contact-line);
  display:grid;
  gap:18px;
  grid-template-columns:1fr auto;
  padding:20px 0;
}
.cm-contact-route strong{
  font-family:"Barlow Condensed","Inter","Noto Sans JP",sans-serif;
  font-size:clamp(28px,4vw,54px);
  font-weight:900;
  letter-spacing:-.02em;
  line-height:.9;
  text-transform:uppercase;
}
.cm-contact-route span{
  color:var(--cm-contact-muted);
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
.cm-contact-panel{
  align-self:start;
  background:var(--cm-contact-soft);
  border:1px solid var(--cm-contact-line);
  padding:clamp(22px,3.5vw,42px);
}
.cm-contact-panel h2{
  font-family:"Barlow Condensed","Inter","Noto Sans JP",sans-serif;
  font-size:clamp(34px,5vw,64px);
  font-weight:900;
  letter-spacing:-.03em;
  line-height:.92;
  margin:0 0 18px;
}
.cm-contact-panel p{
  color:var(--cm-contact-muted);
  font-size:13px;
  line-height:1.9;
  margin:0 0 24px;
}
.cm-contact-form{
  display:grid;
  gap:16px;
}
.cm-contact-field{
  display:grid;
  gap:8px;
}
.cm-contact-field label{
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cm-contact-field input,
.cm-contact-field select,
.cm-contact-field textarea{
  background:#fff;
  border:1px solid var(--cm-contact-line);
  border-radius:0;
  color:var(--cm-contact-ink);
  font:inherit;
  font-size:15px;
  min-height:48px;
  outline:none;
  padding:12px 14px;
  width:100%;
}
.cm-contact-field textarea{
  min-height:148px;
  resize:vertical;
}
.cm-contact-field input:focus,
.cm-contact-field select:focus,
.cm-contact-field textarea:focus{
  border-color:var(--cm-contact-accent);
  box-shadow:0 0 0 3px rgba(23,63,52,.11);
}
.cm-contact-actions{
  display:grid;
  gap:10px;
  grid-template-columns:1fr;
  margin-top:8px;
}
.cm-contact-button{
  align-items:center;
  background:var(--cm-contact-ink);
  border:1px solid var(--cm-contact-ink);
  color:#fff;
  cursor:pointer;
  display:inline-flex;
  font:inherit;
  font-size:13px;
  font-weight:900;
  justify-content:center;
  letter-spacing:.08em;
  min-height:52px;
  padding:14px 18px;
  text-transform:uppercase;
}
.cm-contact-button--line{
  background:#06c755;
  border-color:#06c755;
  color:#fff;
}
.cm-contact-note{
  color:var(--cm-contact-muted);
  font-size:11px;
  line-height:1.8;
  margin:8px 0 0;
}
.cm-contact-wp .entry-content,
.cm-contact-wp .article,
.cm-contact-wp .content,
.cm-contact-wp main{
  margin:0;
  max-width:none;
  padding:0;
}
.cm-contact-smf{
  margin-top:22px;
}
.cm-contact-smf .snow-monkey-form{
  display:grid;
  gap:16px;
}
.cm-contact-smf .smf-form,
.cm-contact-smf .smf-placeholder{
  display:grid;
  gap:14px;
}
.cm-contact-smf .smf-item{
  display:grid;
  gap:8px;
  margin:0;
}
.cm-contact-smf .smf-item__label{
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cm-contact-smf .smf-text-control__control,
.cm-contact-smf .smf-textarea-control__control,
.cm-contact-smf .smf-select-control__control{
  background:#fff;
  border:1px solid var(--cm-contact-line);
  border-radius:0;
  color:var(--cm-contact-ink);
  font:inherit;
  font-size:15px;
  min-height:48px;
  outline:none;
  padding:12px 14px;
  width:100%;
}
.cm-contact-smf .smf-textarea-control__control{
  min-height:150px;
  resize:vertical;
}
.cm-contact-smf .smf-text-control__control:focus,
.cm-contact-smf .smf-textarea-control__control:focus,
.cm-contact-smf .smf-select-control__control:focus{
  border-color:var(--cm-contact-accent);
  box-shadow:0 0 0 3px rgba(23,63,52,.11);
}
.cm-contact-smf .smf-action{
  display:grid;
  gap:10px;
  margin-top:8px;
}
.cm-contact-smf .smf-button-control__control{
  align-items:center;
  background:var(--cm-contact-ink);
  border:1px solid var(--cm-contact-ink);
  border-radius:0;
  color:#fff;
  cursor:pointer;
  display:inline-flex;
  font:inherit;
  font-size:13px;
  font-weight:900;
  justify-content:center;
  letter-spacing:.08em;
  min-height:52px;
  padding:14px 18px;
  text-transform:uppercase;
  width:100%;
}
@media(max-width:900px){
  .cm-contact-hero{grid-template-columns:1fr;min-height:auto}
  .cm-contact-nav{display:none}
}
@media(max-width:640px){
  .cm-contact-header{padding:0 16px}
  .cm-contact-hero{padding:44px 16px}
  .cm-contact-route a{grid-template-columns:1fr}
  .cm-contact-route span{white-space:normal}
}
