/* ========================================
   common.css — shared styles for all pages
   ======================================== */

/* Reset & base */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
}
body {
  font-family: 'Noto Sans JP', sans-serif;
  color: #26323a;
  line-height: 1.7;
  background: radial-gradient(1100px 560px at 80% -10%, #d7f8f1 0%, #f8fcfc 50%, #ffffff 78%);
  -webkit-font-smoothing: antialiased;
}
a {
  text-decoration: none;
  color: inherit;
}
.inner {
  width: min(1120px, 92%);
  margin: 0 auto;
}

/* ========================================
   Header
   ======================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid rgba(38, 50, 58, 0.1);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 74px;
}
.header-logo {
  font-family: 'Outfit', sans-serif;
  font-size: 24px;
  font-weight: 700;
}
.header-links {
  display: flex;
  align-items: center;
  gap: 22px;
  color: #52606b;
  font-size: 14px;
}
.header-links a:hover {
  color: #24958d;
}

/* ========================================
   Buttons
   ======================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s;
}
.btn:hover {
  opacity: 0.9;
}
.btn-primary {
  background: #22323a;
  color: #fff;
  font-size: 15px;
  padding: 13px 24px;
}
.btn-secondary {
  background: #fff;
  border: 1px solid #9eb0bb;
  color: #2f3d46;
  font-size: 14px;
  padding: 12px 22px;
}
.btn-google {
  background: #fff;
  color: #1f2933;
  border: 1px solid #d4dee6;
  padding: 12px 20px;
  gap: 10px;
  font-size: 15px;
}
.btn-google-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* ========================================
   Section helpers
   ======================================== */
main section {
  padding: 72px 0;
}
.section-head {
  text-align: center;
  margin-bottom: 28px;
}
.section-head h2 {
  font-size: clamp(25px, 3.2vw, 38px);
  line-height: 1.35;
  margin-bottom: 10px;
  color: #1c2a34;
}
.section-head p {
  color: #5a6974;
  font-size: 16px;
}
.section-cta {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 24px;
  flex-wrap: wrap;
}

/* ========================================
   Plan cards
   ======================================== */
.plan {
  border: 1px solid #d4e6eb;
  border-radius: 16px;
  background: #fff;
  padding: 20px;
  cursor: default;
}
.plan.featured {
  border-color: #2b9a92;
  box-shadow: 0 10px 24px rgba(43, 154, 146, 0.14);
  position: relative;
}
.plan-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: #2b9a92;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 16px;
  border-radius: 20px;
  white-space: nowrap;
}
.plan .name {
  font-weight: 700;
  color: #1d2b33;
}
.plan .price {
  font-family: 'Outfit', sans-serif;
  font-size: 31px;
  color: #132028;
  margin: 6px 0 2px;
}
.plan .price small {
  font-size: 13px;
  color: #61717d;
}
.plan ul {
  list-style: none;
  margin-top: 10px;
  display: grid;
  gap: 6px;
  color: #53626d;
  font-size: 14px;
}
.plan ul li::before {
  content: '\2022';
  color: #269a92;
  margin-right: 7px;
}
.plan .btn {
  margin-top: 14px;
  width: 100%;
  cursor: pointer;
}
.plan .btn:hover {
  opacity: 0.88;
  transform: translateY(-1px);
  transition: all 0.15s ease;
}
.pricing-plans {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

/* ========================================
   FAQ accordion
   ======================================== */
.faq {
  max-width: 900px;
  margin: 0 auto;
  display: grid;
  gap: 12px;
}
details {
  background: #fff;
  border: 1px solid #dce8ee;
  border-radius: 12px;
  padding: 16px 18px;
}
summary {
  font-weight: 700;
  color: #27333d;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
summary::-webkit-details-marker {
  display: none;
}
.faq-question {
  flex: 1;
}
.faq-chevron {
  flex-shrink: 0;
  transition: transform 0.25s ease;
}
details[open] .faq-chevron {
  transform: rotate(180deg);
}
details p {
  margin-top: 10px;
  color: #586571;
  font-size: 15px;
}

/* ========================================
   Footer
   ======================================== */
.site-footer {
  background: #2e2e2e;
  padding: 72px 0 40px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 56px;
}
.footer-brand-name {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #fff;
  margin-bottom: 12px;
}
.footer-brand-desc {
  font-size: 13px;
  color: #888;
  line-height: 1.7;
}
.footer-col-title {
  font-size: 12px;
  font-weight: 700;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 20px;
}
.footer-col a {
  display: block;
  font-size: 14px;
  color: #bbb;
  padding: 5px 0;
}
.footer-col a:hover {
  color: #76cfca;
}
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 24px;
  text-align: center;
  font-size: 12px;
  color: #666;
}

/* ========================================
   Responsive — shared breakpoints
   ======================================== */
@media (min-width: 1024px) {
  .pricing-plans {
    grid-template-columns: repeat(4, 1fr);
  }
  .section-cta.hide-pc {
    display: none;
  }
}

@media (max-width: 980px) {
  .header-links {
    display: none;
  }
  .pricing-plans {
    grid-template-columns: 1fr;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 680px) {
  main section {
    padding: 58px 0;
  }
  .footer-grid {
    grid-template-columns: 1fr;
  }
}
