/* 日本語フォント調整と選択色のカスタマイズ */
:root {
  --gs-font-family: 'Noto Sans JP', system-ui, sans-serif;
}

body {
  font-family: var(--gs-font-family);
}
::selection {
  background-color: #e6f2ec;
  color: #16634a;
}

/* JSの表示切替は Tailwind の .hidden / .block 等を利用する（!important で上書きしない） */

/* スクロール時の控えめなフェードアップ演出（docs/scroll-fade-up-animation.md） */
.reveal {
  --reveal-delay: 0ms;

  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 580ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 580ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 200ms ease,
    border-color 200ms ease,
    background-color 200ms ease,
    color 200ms ease;
  transition-delay: var(--reveal-delay);
  will-change: opacity, transform;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  will-change: auto;
}

.reveal-delay-1 {
  --reveal-delay: 80ms;
}

.reveal-delay-2 {
  --reveal-delay: 160ms;
}

.reveal-delay-3 {
  --reveal-delay: 200ms;
}

.animate-bounce-slow {
  animation: bounce 3s infinite;
}

.gs-hero-title {
  --gs-hero-title-line-height: 1.16;
  --gs-hero-title-group-gap: 0.7rem;
  letter-spacing: -0.045em;
}

.gs-hero-eyebrow {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  padding: 0.6rem 1rem;
  border-radius: 0.125rem;
  background: rgb(230 242 236 / 0.95);
  box-shadow: inset 0 0 0 1px rgb(22 99 74 / 0.04);
  color: #16634a;
  font-size: clamp(0.7rem, 3.4vw, 1.1rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.45;
  text-wrap: balance;
}

.gs-hero-title__lead,
.gs-hero-title__main {
  line-height: var(--gs-hero-title-line-height);
  text-wrap: balance;
}

.gs-hero-title__lead + .gs-hero-title__main {
  margin-top: var(--gs-hero-title-group-gap);
}

/* 文節単位で改行し「現在地」などのキーワードを途中分断させない */
.gs-hero-title__seg {
  white-space: nowrap;
}

/* 橋渡しキーワード「現在地」を緑＋わずかに拡大して焦点化 */
.gs-hero-title__accent {
  color: #16634a;
  font-size: 1.06em;
}

.gs-hero-copy {
  letter-spacing: -0.01em;
}

/* 公開予定日告知（docs/geo-signals-launch-date-notice.md） */
.gs-launch-notice {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  max-width: 100%;
  padding: 0.875rem 1rem;
  border: 1px solid #d0eddf;
  border-radius: 0.75rem;
  background: rgb(230 242 236 / 0.95);
  box-shadow: inset 0 0 0 1px rgb(22 99 74 / 0.04);
  color: #16634a;
  text-wrap: balance;
}

.gs-launch-notice__icon {
  flex-shrink: 0;
  margin-top: 0.125rem;
  color: #16634a;
}

.gs-launch-notice__icon svg {
  width: 1.125rem;
  height: 1.125rem;
}

.gs-launch-notice__body {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.gs-launch-notice__date {
  font-size: 0.9375rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.45;
}

.gs-launch-notice__note {
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.5;
  color: #1e6b52;
}

.gs-launch-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border: 1px solid #d0eddf;
  border-radius: 9999px;
  background: #e6f2ec;
  color: #16634a;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
}

.gs-launch-badge svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

@media (max-width: 639px) {
  .gs-launch-notice__date {
    font-size: 0.875rem;
  }

  .gs-launch-notice__note {
    font-size: 0.75rem;
  }
}

.gs-hero-visual {
  isolation: isolate;
  min-height: auto;
  padding: 1rem 0;
}

.gs-hero-visual__glow {
  position: absolute;
  inset: 7% -8% 8% 8%;
  z-index: -1;
  border-radius: 2rem;
  background:
    radial-gradient(circle at 78% 18%, rgb(16 185 129 / 0.2), transparent 28%),
    radial-gradient(circle at 22% 86%, rgb(14 165 233 / 0.14), transparent 30%),
    linear-gradient(135deg, rgb(230 242 236 / 0.9), rgb(255 255 255 / 0.3));
  filter: blur(2px);
}

.gs-hero-preview {
  --gs-hero-preview-scale: 1;

  position: relative;
  z-index: 1;
  transform-origin: center;
  transform: scale(var(--gs-hero-preview-scale));
  box-shadow:
    0 34px 80px rgb(22 99 74 / 0.18),
    0 10px 24px rgb(15 23 42 / 0.08);
}

.gs-hero-preview.is-animated {
  animation: gs-hero-preview-lift 560ms ease-out both;
}

.gs-hero-kpi-value {
  display: inline-block;
  min-width: 4.4ch;
  font-variant-numeric: tabular-nums;
}

.gs-hero-kpi-value.is-counting {
  text-shadow: 0 0 16px rgb(22 99 74 / 0.18);
}

.gs-hero-chart-shell {
  overflow: hidden;
}

/* canvasの内在幅がグリッド列の最小幅を広げないよう、レイアウト計算から外す */
.gs-hero-chart-shell canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}

.gs-hero-chart-shell::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  opacity: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgb(255 255 255 / 0.6) 48%,
    transparent 100%
  );
}

.gs-hero-preview[data-animation-state="playing"] .gs-hero-chart-shell::after {
  animation: gs-hero-chart-scan 900ms ease-out 120ms both;
}

@keyframes gs-hero-preview-lift {
  from {
    opacity: 0.92;
    transform: translateY(10px) scale(calc(var(--gs-hero-preview-scale) * 0.985));
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(var(--gs-hero-preview-scale));
  }
}

@keyframes gs-hero-chart-scan {
  0% {
    opacity: 0;
    transform: translateX(-100%);
  }

  18% {
    opacity: 0.8;
  }

  100% {
    opacity: 0;
    transform: translateX(100%);
  }
}

@media (min-width: 1024px) {
  .gs-hero-visual {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: 3.75rem;
  }

  .gs-hero-title__lead {
    font-size: clamp(2.35rem, 3.25vw, 2.6rem);
  }

  .gs-hero-title__main {
    font-size: clamp(3.1rem, 4.25vw, 3.35rem);
  }

  .gs-hero-eyebrow {
    padding: 0.72rem 1.25rem;
    font-size: 1.15rem;
  }

  .gs-hero-copy {
    font-size: 1rem;
    line-height: 1.85;
  }

  .gs-hero-preview {
    --gs-hero-preview-scale: 1.03;
  }
}

@media (max-width: 1023px) {
  .gs-hero-visual {
    min-height: auto;
    padding: 0 0 1rem;
  }

  .gs-hero-visual__glow {
    inset: 2rem 0 0;
  }
}

/* 640px未満: ヘッダーCTA文言統一後もロゴ・ハンバーガーと共存できるよう縮小 */
@media (max-width: 639px) {
  header .primary-cta {
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
    white-space: nowrap;
    gap: 0.375rem;
  }
}

/* 375px未満: ヘッダーのロゴとCTAが取り合わないようさらに縮小 */
@media (max-width: 374px) {
  header .primary-cta {
    padding: 0.4rem 0.55rem;
    font-size: 0.7rem;
  }

  header .primary-cta [data-lucide="external-link"] {
    display: none;
  }

  header a[aria-label="GEO Signals"] img {
    height: 1.65rem;
  }
}

/* モバイル: 見出しを1行に収め、PC向け固定改行(br)を無効化する */
@media (max-width: 639px) {
  .gs-hero-title__lead {
    font-size: min(1.75rem, 7vw);
  }

  .gs-hero-title__main {
    font-size: min(2.25rem, 8.4vw);
  }

  .gs-hero-copy br,
  section h2 br {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }

  .gs-hero-preview.is-animated,
  .gs-hero-preview[data-animation-state="playing"] .gs-hero-chart-shell::after {
    animation: none;
  }

  .gs-hero-kpi-value.is-counting {
    text-shadow: none;
  }
}

.w-5\.5 {
  width: 1.375rem;
}

.h-5\.5 {
  height: 1.375rem;
}

/* ヒーロー主CTA（公式サイト送客） */
.primary-cta--hero {
  width: 100%;
  padding: 1rem 1.5rem;
  font-size: 1rem;
  font-weight: 800;
  border-radius: 0.75rem;
}

@media (min-width: 640px) {
  .primary-cta--hero {
    width: auto;
    min-width: 18rem;
    padding: 1.125rem 1.75rem;
    font-size: 1.0625rem;
  }
}

/* フローティングCTA（送客強化） */
.gs-floating-cta {
  position: fixed;
  z-index: 40;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(0.75rem);
  transition:
    opacity 0.24s ease,
    visibility 0.24s ease,
    transform 0.24s ease;
}

.gs-floating-cta.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.gs-floating-cta.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.gs-floating-cta__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.25rem;
  border-radius: 9999px;
  background: linear-gradient(135deg, #047857 0%, #10b981 100%);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
  box-shadow: 0 14px 32px rgb(20 184 166 / 0.32);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    background 0.18s ease;
}

.gs-floating-cta__link:hover {
  background: linear-gradient(135deg, #059669 0%, #10b981 55%, #14b8a6 100%);
  transform: translateY(-1px);
  box-shadow: 0 18px 40px rgb(20 184 166 / 0.38);
}

.gs-floating-cta__link:focus-visible {
  outline: 2px solid #16634a;
  outline-offset: 3px;
}

.gs-floating-cta {
  right: 1rem;
  bottom: 1rem;
}

@media (min-width: 768px) {
  .gs-floating-cta {
    right: 1.5rem;
    bottom: 1.5rem;
  }

  .gs-floating-cta__link {
    padding: 0.9375rem 1.375rem;
    font-size: 0.9375rem;
  }
}

@media (max-width: 639px) {
  .gs-floating-cta {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
  }

  .gs-floating-cta__link {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gs-floating-cta,
  .gs-floating-cta__link {
    transition: none;
  }

  .gs-floating-cta.is-visible {
    transform: none;
  }
}

/* CTA共通 */
.primary-cta,
.final-cta-button {
  color: #fff;
  background: linear-gradient(135deg, #047857 0%, #10b981 100%);
  box-shadow: 0 14px 32px rgb(20 184 166 / 0.28);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    background 0.18s ease;
}

.primary-cta:hover,
.final-cta-button:hover {
  background: linear-gradient(135deg, #059669 0%, #10b981 55%, #14b8a6 100%);
  transform: translateY(-1px);
  box-shadow: 0 18px 40px rgb(20 184 166 / 0.34);
}


/* #contact 最終CTA（docs/final-cta-button.md） */
.final-cta-button {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 800;
  border-radius: 0.5rem;
  border: none;
  cursor: pointer;
}

.final-cta-button:disabled {
  cursor: not-allowed;
  opacity: 0.75;
  transform: none;
}

.secondary-cta-button {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 1.5rem;
  border: 1px solid #d4d4d8;
  border-radius: 0.5rem;
  background: #fff;
  color: #3f3f46;
  font-size: 0.875rem;
  font-weight: 800;
  transition:
    border-color 0.18s ease,
    background-color 0.18s ease,
    color 0.18s ease;
}

.secondary-cta-button:hover {
  border-color: #16634a;
  background: #f7fbf8;
  color: #16634a;
}

/*
 * #contact（濃い緑 #16634a 背景）のCTA階層。
 * プランB: 主役は常に「公式サイトを見る」に統一する。
 * 濃い背景では白塗り = 主役（公式サイト側のインラインクラスで指定）。
 * アカウント作成・ログインは白アウトラインの第2・第3優先に降格し、
 * 「緑 = 公式サイトへ」の役割をページ全体で一貫させる。
 */
.gs-contact-cta-secondary,
.gs-contact-cta-tertiary {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 800;
  color: #fff;
  background: transparent;
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease;
}

/* 第2優先: 14日間無料で試す */
.gs-contact-cta-secondary {
  border: 1.5px solid rgb(255 255 255 / 0.85);
  background: rgb(255 255 255 / 0.1);
}

.gs-contact-cta-secondary:hover {
  border-color: #fff;
  background: rgb(255 255 255 / 0.2);
  color: #fff;
}

/* 第3優先: ログイン */
.gs-contact-cta-tertiary {
  border: 1px solid rgb(255 255 255 / 0.3);
}

.gs-contact-cta-tertiary:hover {
  border-color: rgb(255 255 255 / 0.55);
  background: rgb(255 255 255 / 0.1);
  color: #fff;
}

.gs-privacy-policy-trigger {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #16634a;
  font: inherit;
  font-weight: 800;
  line-height: inherit;
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
  cursor: pointer;
}

.gs-privacy-policy-trigger:hover {
  color: #0f513c;
}

.gs-privacy-policy-trigger:focus-visible,
.gs-privacy-modal__close:focus-visible,
.gs-privacy-modal__content:focus-visible {
  outline: 2px solid #16634a;
  outline-offset: 3px;
}

/* プライバシーポリシーモーダル（docs/geo-signals-privacy-policy-section.md） */
.gs-modal-open {
  overflow: hidden;
}

.gs-privacy-modal[hidden] {
  display: none;
}

.gs-privacy-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.gs-privacy-modal__backdrop {
  position: fixed;
  inset: 0;
  background: rgb(15 23 42 / 0.58);
  backdrop-filter: blur(6px);
}

.gs-privacy-modal__dialog {
  position: relative;
  z-index: 1;
  display: flex;
  width: min(100%, 54rem);
  max-height: min(86vh, 48rem);
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #d9eee5;
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: 0 24px 72px rgb(15 23 42 / 0.24);
}

.gs-privacy-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem 1.75rem;
  border-bottom: 1px solid #e4e4e7;
  background:
    radial-gradient(circle at top right, rgb(22 99 74 / 0.08), transparent 18rem),
    #fafafa;
}

.gs-privacy-policy__eyebrow {
  margin-bottom: 0.75rem;
  color: #16634a;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.gs-privacy-policy__title {
  color: #18181b;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: -0.04em;
}

.gs-privacy-policy__lead {
  max-width: 42rem;
  margin: 1rem auto 0;
  color: #71717a;
  font-size: 0.9375rem;
  line-height: 1.8;
}

.gs-privacy-policy__content {
  font-size: 0.875rem;
  line-height: 1.9;
}

.gs-privacy-modal__content {
  min-height: 0;
  overflow-y: auto;
  padding: 1.75rem;
  color: #3f3f46;
}

.gs-privacy-policy__content h3 {
  margin: 2rem 0 0.75rem;
  color: #18181b;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.5;
}

.gs-privacy-policy__content h3:first-of-type {
  margin-top: 1.5rem;
}

.gs-privacy-policy__content p + p,
.gs-privacy-policy__content li + li {
  margin-top: 0.75rem;
}

.gs-privacy-policy__content ol,
.gs-privacy-policy__content ul {
  margin-top: 0.75rem;
  padding-left: 1.25rem;
}

.gs-privacy-policy__content ol {
  list-style: decimal;
}

.gs-privacy-policy__content ul {
  list-style: disc;
}

.gs-privacy-policy__content strong {
  color: #27272a;
  font-weight: 800;
}

.gs-privacy-modal__close {
  flex: 0 0 auto;
  padding: 0.5rem 0.75rem;
  border: 1px solid #d4d4d8;
  border-radius: 9999px;
  background: #fff;
  color: #3f3f46;
  font-size: 0.8125rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
}

.gs-privacy-modal__close:hover {
  border-color: #16634a;
  color: #16634a;
}

/* #about 開発背景（エディトリアル構成） */
/* 信頼プルーフ（創業年・支援年数）はリード文内で自然に強調し、冗長な数字モジュールを避ける */
.gs-about-lead-emphasis {
  color: #16634a;
  font-weight: 800;
  white-space: nowrap;
  background-image: linear-gradient(transparent 60%, rgb(22 99 74 / 0.14) 60%);
  background-repeat: no-repeat;
}

.gs-story-flow {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 3.5rem;
}

.gs-story-step {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1.5rem 1.25rem 1.25rem;
  border-left: 3px solid #16634a;
  background: linear-gradient(90deg, rgb(230 242 236 / 0.45) 0%, transparent 60%);
}

.gs-story-step__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 9999px;
  background: #16634a;
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.gs-story-step__title {
  color: #18181b;
  font-size: 1.0625rem;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: -0.02em;
}

.gs-story-step__text {
  color: #52525b;
  font-size: 0.875rem;
  line-height: 1.75;
}

@media (min-width: 768px) {
  .gs-story-flow {
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border: 1px solid #e4e4e7;
    border-radius: 1rem;
    overflow: hidden;
  }

  .gs-story-step {
    border-left: 0;
    border-top: 3px solid #16634a;
    background: #fafafa;
    padding: 1.75rem 1.5rem 1.5rem;
  }

  .gs-story-step + .gs-story-step {
    border-left: 1px solid #e4e4e7;
  }
}

.gs-about-quote {
  position: relative;
  padding: 2rem 1.5rem;
  border: 1px solid #d9eee5;
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at top left, rgb(22 99 74 / 0.06), transparent 40%),
    #fff;
  box-shadow: 0 8px 32px rgb(22 99 74 / 0.06);
}

.gs-about-quote__mark {
  position: absolute;
  top: 1rem;
  left: 1.25rem;
  color: #16634a;
  font-size: 4rem;
  font-weight: 900;
  line-height: 1;
  opacity: 0.12;
  pointer-events: none;
  user-select: none;
}

.gs-about-quote__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

@media (min-width: 1024px) {
  .gs-about-quote {
    padding: 2.5rem 2.75rem;
  }

  .gs-about-quote__inner {
    flex-direction: row;
    align-items: flex-start;
    gap: 2.5rem;
  }
}

.gs-about-quote__photo {
  flex-shrink: 0;
  width: 7rem;
  height: 7rem;
  border-radius: 9999px;
  object-fit: cover;
  box-shadow:
    0 0 0 4px #e6f2ec,
    0 8px 24px rgb(22 99 74 / 0.12);
}

@media (min-width: 1024px) {
  .gs-about-quote__photo {
    width: 8.5rem;
    height: 8.5rem;
  }
}

.gs-about-quote__body {
  flex: 1;
  min-width: 0;
}

.gs-about-quote__text {
  color: #3f3f46;
  font-size: 0.9375rem;
  line-height: 1.85;
}

.gs-about-quote__text + .gs-about-quote__text {
  margin-top: 1rem;
}

.gs-about-quote__attribution {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid #e4e4e7;
}

.gs-about-quote__name {
  color: #18181b;
  font-size: 1.125rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.gs-about-quote__role {
  margin-top: 0.25rem;
  color: #71717a;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.5;
}

/* #features 主要機能（脱カード横並びリスト） */
.gs-feature-list {
  width: 100%;
  max-width: 48rem;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.gs-feature-list__item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 0;
  border-top: 1px solid #e4e4e7;
}

.gs-feature-list__item:last-child {
  border-bottom: 1px solid #e4e4e7;
}

.gs-feature-list__icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 9999px;
  background: rgb(230 242 236 / 0.65);
  color: #16634a;
}

.gs-feature-list__body {
  flex: 1;
  min-width: 0;
}

.gs-feature-list__title {
  color: #18181b;
  font-size: 1.0625rem;
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: -0.02em;
}

.gs-feature-list__text {
  margin-top: 0.375rem;
  color: #52525b;
  font-size: 0.875rem;
  line-height: 1.75;
}

@media (min-width: 768px) {
  .gs-feature-list__item {
    gap: 1.25rem;
    padding: 1.5rem 0;
  }

  .gs-feature-list__icon {
    width: 2.5rem;
    height: 2.5rem;
  }
}

.gs-features-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  max-width: 36rem;
  margin: 3rem auto 0;
  padding: 1.5rem 1.75rem;
  border: 1px solid #d9eee5;
  border-radius: 1rem;
  background: rgb(230 242 236 / 0.45);
  text-align: center;
}

.gs-features-cta__note {
  color: #3f3f46;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.75;
}

.gs-features-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  border: 1px solid #d4d4d8;
  border-radius: 0.5rem;
  background: #fff;
  color: #3f3f46;
  font-size: 0.875rem;
  font-weight: 800;
  box-shadow: 0 1px 2px rgb(15 23 42 / 0.05);
  transition:
    border-color 0.18s ease,
    background-color 0.18s ease,
    color 0.18s ease,
    box-shadow 0.18s ease;
}

.gs-features-cta__button:hover {
  border-color: #16634a;
  background: #f7fbf8;
  color: #16634a;
  box-shadow: 0 4px 12px rgb(22 99 74 / 0.08);
}

@media (min-width: 768px) {
  .gs-features-cta {
    margin-top: 3.5rem;
    padding: 1.75rem 2rem;
    gap: 1.375rem;
  }

  .gs-features-cta__note {
    font-size: 0.875rem;
  }
}

@media (max-width: 640px) {
  .gs-privacy-modal {
    align-items: stretch;
    padding: 0.75rem;
  }

  .gs-privacy-modal__dialog {
    width: 100%;
    max-height: 88vh;
    border-radius: 1rem;
  }

  .gs-privacy-modal__header {
    padding: 1.125rem;
  }

  .gs-privacy-policy__title {
    font-size: 1.35rem;
  }

  .gs-privacy-modal__content {
    padding: 1.125rem;
    font-size: 0.8125rem;
  }
}
