/*
Theme Name: senka
Theme URI: https://senka-aircon.com/
Description: エアコンクリーニング senka オフィシャルサイト（フルスクラッチテーマ）
Author: senka
Version: 1.2.2
Text Domain: senka
Requires at least: 6.0
Requires PHP: 7.4
*/

body { font-family:'Noto Sans JP',sans-serif; }
.hero-section { min-height:clamp(520px,88vh,860px); }
.hero-bg-img { animation:heroZoom 18s ease-in-out infinite alternate; }
@keyframes heroZoom { from { transform:scale(1); } to { transform:scale(1.08); } }
.hero-title-line { line-height:1.12; letter-spacing:-.02em; }
.t-section { font-size:1.375rem; line-height:1.35; letter-spacing:-.02em; }
.t-section-sm { font-size:1.25rem; line-height:1.35; letter-spacing:-.02em; }
.t-sub { font-size:1.125rem; line-height:1.4; }
.t-sub-sm { font-size:1.0625rem; line-height:1.4; }
.t-card { font-size:1rem; line-height:1.45; }
.t-contact { font-size:1.25rem; line-height:1.35; }
.t-stat { font-size:1.25rem; line-height:1.2; }
.t-page { font-size:1.375rem; line-height:1.35; letter-spacing:-.02em; }
@media (min-width:640px) {
  .t-section { font-size:1.875rem; }
  .t-section-sm { font-size:1.5rem; }
  .t-sub { font-size:1.5rem; }
  .t-sub-sm { font-size:1.25rem; }
  .t-card { font-size:1.125rem; }
  .t-stat { font-size:1.5rem; }
  .t-page { font-size:1.875rem; }
}
@media (min-width:768px) { .t-contact { font-size:1.875rem; } }
.hero-lead { line-height:1.75; }
@media (min-width:768px) { .hero-lead { line-height:1.85; } }
.gradient-brand { background:linear-gradient(135deg,#152f62 0%,#2d56a6 100%); }
.btn-line { background:#06C755; transition:background .2s,transform .15s,box-shadow .2s; box-shadow:0 6px 24px rgba(6,199,85,.4); }
.btn-line:hover { background:#05a848; transform:translateY(-2px); box-shadow:0 10px 32px rgba(6,199,85,.45); }
.sec-title { position:relative; display:inline-block; padding-bottom:1rem; }
.sec-title::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:40px; height:3px; background:#f7d368; border-radius:2px; }
.img-ph { background:#e8eef5; }
.ba-label { position:absolute; top:10px; left:10px; font-size:.7rem; font-weight:900; padding:3px 10px; border-radius:50px; letter-spacing:.05em; z-index:2; }
.ba-arrow { width:2.5rem; height:2.5rem; border-radius:9999px; background:#f7d368; color:#152f62; display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 2px 10px rgba(45,86,166,.12); }
.review-card { background:#fff; border-radius:1.5rem; padding:1.5rem; box-shadow:0 2px 20px rgba(45,86,166,.07); border:1px solid #dde8f5; position:relative; }
.review-card::before { content:'\201C'; position:absolute; top:12px; left:18px; font-size:3rem; color:#f7d368; font-weight:900; line-height:1; opacity:.6; }
.cta-float { position:fixed; bottom:16px; left:50%; transform:translateX(-50%); width:94%; max-width:440px; z-index:200; }
.fade-up { opacity:1; transform:translateY(0); transition:opacity .6s ease,transform .6s ease; }
@media (prefers-reduced-motion:no-preference) {
  html.senka-js .fade-up { opacity:0; transform:translateY(20px); }
  html.senka-js .fade-up.in { opacity:1; transform:translateY(0); }
}
html { scroll-behavior:smooth; scroll-padding-top:5.5rem; }
.nav-link { font-size:.75rem; font-weight:700; color:#152f62; white-space:nowrap; transition:color .2s; }
.nav-link:hover { color:#2d56a6; }
#mobile-menu { max-height:0; overflow:hidden; transition:max-height .35s ease; }
#mobile-menu.open { max-height:32rem; }
#menu-toggle[aria-expanded="true"] .icon-menu { display:none; }
#menu-toggle[aria-expanded="true"] .icon-close { display:block; }
#menu-toggle[aria-expanded="false"] .icon-close { display:none; }
.area-chip { display:flex; align-items:center; justify-content:center; width:100%; min-height:2rem; text-align:center; }
.details-panel summary { list-style:none; cursor:pointer; }
.details-panel summary::-webkit-details-marker { display:none; }
.details-panel[open] .details-chevron { transform:rotate(180deg); }
.details-chevron { transition:transform .25s ease; }
.policy-section h2 { font-size:1rem; font-weight:900; color:#152f62; margin-bottom:0.75rem; padding-left:0.75rem; border-left:4px solid #2d56a6; }
.policy-section p, .policy-section li { font-size:0.875rem; color:#4b5563; line-height:1.85; }
.policy-section ul { list-style:none; padding:0; margin:0; }
.policy-section li { padding-left:1rem; position:relative; margin-bottom:0.35rem; }
.policy-section li::before { content:'・'; position:absolute; left:0; color:#2d56a6; font-weight:700; }

/* Contact Form 7 */
.senka-cf7 .wpcf7-form { display:flex; flex-direction:column; gap:1rem; }
.senka-cf7 label { display:block; font-size:0.8125rem; font-weight:700; color:#152f62; margin-bottom:0.35rem; }
.senka-cf7 .wpcf7-form-control-wrap { display:block; margin-top:0.25rem; }
.senka-cf7 input[type="text"],
.senka-cf7 input[type="email"],
.senka-cf7 input[type="tel"],
.senka-cf7 select,
.senka-cf7 textarea {
  width:100%; padding:0.75rem 1rem; border:1px solid #dde8f5; border-radius:0.75rem;
  font-size:0.875rem; background:#f4f8fb; transition:border-color .2s, box-shadow .2s;
}
.senka-cf7 input:focus,
.senka-cf7 select:focus,
.senka-cf7 textarea:focus {
  outline:none; border-color:#2d56a6; box-shadow:0 0 0 3px rgba(45,86,166,.12); background:#fff;
}
.senka-cf7 textarea { min-height:120px; resize:vertical; }
.senka-cf7 .wpcf7-submit {
  width:100%; padding:1rem 1.5rem; background:#2d56a6; color:#fff; font-weight:900;
  font-size:1rem; border:none; border-radius:9999px; cursor:pointer;
  transition:background .2s, transform .15s;
}
.senka-cf7 .wpcf7-submit:hover { background:#152f62; transform:translateY(-1px); }
.senka-cf7 .wpcf7-not-valid-tip { font-size:0.75rem; color:#dc2626; margin-top:0.25rem; }
.senka-cf7 .wpcf7-response-output {
  margin:0.75rem 0 0; padding:0.75rem 1rem; border-radius:0.75rem; font-size:0.8125rem; font-weight:700;
}
.senka-cf7 .wpcf7-acceptance label { display:flex; align-items:flex-start; gap:0.5rem; font-weight:500; color:#4b5563; }
.senka-cf7 .wpcf7-acceptance input { margin-top:0.2rem; flex-shrink:0; }
.senka-cf7 .wpcf7-acceptance a { color:#2d56a6; font-weight:700; }
