/* ===== Base / Layout ===== */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}
img,
svg {
  max-width: 100%;
  height: auto;
  display: block;
}

.np-container {
  box-sizing: border-box;
  width: 100%;
  max-width: 420px; /* スマホ幅想定 */
  margin: 0 auto;
  padding: 16px;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ===== Header ===== */
.np-header {
  width: 100%;
  background: #ffd400;
  margin: 0;
}
.np-header__inner {
  max-width: 420px;
  margin: 0 auto;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.np-header__brand {
  display: inline-flex;
  line-height: 1;
}
.np-header__brand img,
.np-header__logo {
  display: block;
  height: 28px;
  width: auto;
}

/* ===== Form (CF7) ===== */
.np-form p {
  margin: 0 0 16px;
}
.np-form label {
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
  margin: 12px 0 6px;
  line-height: 1.4;
}

/* Inputs */
.np-form input[type='text'],
.np-form input[type='email'],
.np-form input[type='tel'],
.np-form textarea,
.np-form select {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  font-size: 16px; /* iOSズーム抑止 */
  line-height: 1.4;
  padding: 12px 14px;
  border: 1px solid #ddd;
  border-radius: 12px;
  background: #fff;
  outline: 0;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

/* Select arrow */
.np-form select {
  background-image: linear-gradient(45deg, transparent 50%, #999 50%),
    linear-gradient(135deg, #999 50%, transparent 50%);
  background-position: right 14px top 50%, right 8px top 50%;
  background-size: 6px 6px;
  background-repeat: no-repeat;
  padding-right: 34px;
}

/* Focus */
.np-form input:focus,
.np-form textarea:focus,
.np-form select:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

/* Placeholder */
.np-form ::placeholder {
  color: #9aa0a6;
}

/* Error styles (CF7) */
.np-form .wpcf7-not-valid {
  border-color: #ef4444;
}
.np-form .wpcf7-not-valid:focus {
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
}
.np-form .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  color: #ef4444;
  font-size: 0.85rem;
}

/* Submit button */
.np-form input[type='submit'],
.np-form button[type='submit'] {
  display: block;
  width: 100%;
  padding: 16px;
  border: 0;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  cursor: pointer;
  transition: opacity 0.15s ease, transform 0.05s ease;
}
.np-form input[type='submit']:hover {
  opacity: 0.9;
}
.np-form input[type='submit']:active {
  transform: translateY(1px);
}
.np-form input[type='submit'][disabled] {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Acceptance line */
.np-form label > input[type='checkbox'] {
  width: auto;
  margin-right: 8px;
  vertical-align: middle;
  transform: translateY(1px);
}
.np-form a {
  color: #2563eb;
  text-decoration: underline;
}

/* CF7 response box */
.wpcf7 form p {
  margin: 0 0 6px;
}
.wpcf7 form .wpcf7-response-output {
  margin: 12px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #ddd;
}
.wpcf7 form .wpcf7-response-output.wpcf7-mail-sent-ok {
  background: #f1f8e9;
  border-color: #c5e1a5;
}
.wpcf7 form .wpcf7-response-output.wpcf7-validation-errors,
.wpcf7 form .wpcf7-response-output.wpcf7-acceptance-missing {
  background: #fff7ed;
  border-color: #fdba74;
}

/* First block top spacing fix */
.np-main .np-container > :first-child {
  margin-top: 12px;
}

/* reCAPTCHA badge nudge (avoid horizontal scroll) */
.grecaptcha-badge {
  right: 8px !important;
}

/* Autofill (iOS/Chrome) */
.np-form input:-webkit-autofill,
.np-form textarea:-webkit-autofill,
.np-form select:-webkit-autofill {
  box-shadow: 0 0 0 1000px #fff inset !important;
}

/* ===== Footer ===== */
.site-footer {
  background: #f7f7f7;
  border-top: 1px solid #eee;
  margin-top: 40px;
}
.site-footer .copy {
  font-size: 12px;
  color: #666;
}

.site-footer .menu,
.site-footer .menu li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-footer .menu {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.np-footer-info {
  background: #f7f7f7;
  border-top: 1px solid #eee;
  padding: 16px 0;
}
.np-footer-title {
  margin: 0 0 8px;
  font-size: 0.95rem;
  font-weight: 700;
}
.np-footer-office,
.np-footer-mail,
.np-footer-note,
.np-footer-privacy {
  margin: 4px 0;
  font-size: 0.85rem;
  color: #444;
}
.np-footer-mail a {
  color: #2e6f99;
  text-decoration: underline;
  word-break: break-all;
}
