/* Public marketing page only: green brand palette, reference-inspired layout. */
html.site-redesign { background: #f6faf7 !important; }
body.marketing-page {
  --sd-paper: #f6faf7;
  --sd-panel: #fff;
  --sd-ink: #17291e;
  --sd-muted: #5d6b61;
  --sd-dim: #627166;
  --sd-line: rgba(23, 56, 37, .13);
  --sd-line-strong: rgba(23, 56, 37, .24);
  --sd-accent: #198754;
  --sd-accent-strong: #11683f;
  --sd-accent-soft: #eaf7ef;
  --sd-accent-line: #acd5bb;
  --site-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  background: var(--sd-paper) !important;
  color: var(--sd-ink) !important;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}
body.marketing-page::before,
body.marketing-page::after { display: none !important; }

body.marketing-page .site-header {
  background: rgba(246, 250, 247, .94) !important;
  border-bottom: 1px solid var(--sd-line) !important;
  backdrop-filter: blur(14px);
}
body.marketing-page .nav { min-height: 68px; gap: 24px; }
body.marketing-page .brand-word { font-weight: 650; letter-spacing: -.03em; }
body.marketing-page .brand-word span { font-family: var(--site-mono); font-weight: 400; }
body.marketing-page .nav-links a { font-size: 13px; font-weight: 450; color: var(--sd-muted); }
body.marketing-page .nav-action { min-height: 38px; font-size: 13px; font-weight: 500; }
body.marketing-page .nav-action-secondary,
body.marketing-page .nav-action-ghost { color: var(--sd-accent-strong) !important; border-color: var(--sd-accent-line) !important; background: transparent !important; }

body.marketing-page .hero {
  min-height: 860px;
  padding: 132px 0 76px;
  border-bottom: 1px solid var(--sd-line);
  background: var(--sd-paper) !important;
  overflow: visible;
}
body.marketing-page .hero::before {
  inset: 68px max(20px, calc((100vw - 1180px) / 2)) 0;
  background: radial-gradient(circle, rgba(25, 135, 84, .22) .75px, transparent 1px) !important;
  background-size: 22px 22px !important;
  opacity: .75;
  mask-image: linear-gradient(#000 70%, transparent);
}
body.marketing-page .hero-inner {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  width: min(1180px, calc(100% - 40px));
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}
body.marketing-page .hero-copy { min-width: 0; }
body.marketing-page .micro-line {
  min-height: 32px;
  margin: 0 0 30px;
  padding: 6px 12px;
  border: 1px solid var(--sd-line-strong);
  border-radius: 999px;
  background: var(--sd-paper);
  color: var(--sd-muted);
  font: 10px/1.4 var(--site-mono);
  letter-spacing: .07em;
}
body.marketing-page .micro-line::before { width: 6px; height: 6px; background: var(--sd-accent); }
body.marketing-page .hero h1 {
  margin: 0;
  max-width: 100%;
  color: var(--sd-ink);
  font-size: clamp(58px, 6.4vw, 92px);
  line-height: 1.04;
  font-weight: 650;
  letter-spacing: -.055em;
}
body.marketing-page .headline-line { display: block; }
body.marketing-page .headline-line:nth-child(2) { color: var(--sd-ink) !important; -webkit-text-fill-color: var(--sd-ink) !important; }
body.marketing-page .headline-accent { color: var(--sd-accent); -webkit-text-fill-color: var(--sd-accent); }
body.marketing-page .hero-lead {
  max-width: 590px;
  margin: 28px 0 0;
  font-size: 18px;
  line-height: 1.8;
  font-weight: 400;
  color: var(--sd-muted);
}
body.marketing-page .hero-actions { margin-top: 28px; gap: 14px; }
body.marketing-page .btn { min-height: 46px; padding: 0 20px; border-radius: 999px; font-size: 13px; font-weight: 550; box-shadow: none; }
body.marketing-page .btn-primary,
body.marketing-page .nav-action:not(.nav-action-secondary):not(.nav-action-ghost) {
  color: #fff !important;
  background: var(--sd-accent) !important;
  border-color: var(--sd-accent) !important;
}
body.marketing-page .btn-secondary { color: var(--sd-accent-strong) !important; border: 1px solid var(--sd-accent-line) !important; background: transparent !important; }
body.marketing-page .btn-primary:hover,
body.marketing-page .nav-action:not(.nav-action-secondary):not(.nav-action-ghost):hover { background: var(--sd-accent-strong) !important; border-color: var(--sd-accent-strong) !important; }
body.marketing-page :is(.btn-secondary, .nav-action-secondary, .nav-action-ghost):hover { background: var(--sd-accent-soft) !important; }
body.marketing-page :is(.btn, .nav-action, .plan-action):focus-visible { outline: 2px solid var(--sd-accent-strong); outline-offset: 4px; }
body.marketing-page .btn:hover,
body.marketing-page .nav-action:hover { transform: translateY(-1px); }
body.marketing-page .line-chip { margin-top: 28px; padding: 0; border: 0 !important; border-radius: 0; background: transparent !important; font: 11px/1.6 var(--site-mono); }
body.marketing-page .line-chip code { font-size: 12px; font-weight: 550; }
body.marketing-page .hero-tags { margin-top: 14px; gap: 12px; }
body.marketing-page .hero-tags span { font-size: 11px; font-weight: 450; }
body.marketing-page .hero-tags span::before { color: var(--sd-accent-strong); }
body.marketing-page .hero-liff-preview {
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  gap: 12px;
  overflow: visible;
}
body.marketing-page .hero-phone-image {
  display: block;
  width: min(100%, 426px);
  height: auto;
  aspect-ratio: 1857 / 3096;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
body.marketing-page .hero-liff-preview figcaption { color: var(--sd-muted); font: 10px/1.6 var(--site-mono); letter-spacing: .04em; }

body.marketing-page :is(.showcase, .liff-showcase, .membership, .liff-start, .messaging, .cta) {
  padding: 100px 0;
  border-bottom: 1px solid var(--sd-line);
  background: var(--sd-paper) !important;
}
body.marketing-page .liff-start { border-top: 0; }
body.marketing-page .kicker,
body.marketing-page .panel-label { color: var(--sd-accent-strong) !important; font: 10px/1.5 var(--site-mono); letter-spacing: .12em; }
body.marketing-page .section-heading { gap: 36px; margin-bottom: 42px; align-items: end; }
body.marketing-page :is(.section-heading h2, .message-copy h2, .cta-box h2) {
  max-width: 16ch;
  font-size: clamp(36px, 4.4vw, 62px);
  line-height: 1.14;
  font-weight: 600;
  letter-spacing: -.045em;
  text-wrap: balance;
}
body.marketing-page .section-heading > p { max-width: 430px; font-size: 15px; line-height: 1.8; font-weight: 400; }
body.marketing-page .heading-phrase { display: inline-block; }
body.marketing-page .feature-panel { min-height: 0; padding: 30px; }
body.marketing-page .feature-panel.large { padding: 36px; }
body.marketing-page .feature-panel h3 { font-size: 27px; line-height: 1.35; font-weight: 560; }
body.marketing-page :is(.feature-panel p, .plan-card p, .message-copy p, .copy-list, .liff-start p, .cta-box p) { font-weight: 400; line-height: 1.8; }
body.marketing-page .analysis-card { background: #f0f7f2 !important; border-color: var(--sd-line) !important; border-radius: 10px; }
body.marketing-page .analysis-card b { color: var(--sd-ink); font-weight: 550; }
body.marketing-page .analysis-card small { color: var(--sd-muted); font: 10px/1.5 var(--site-mono); }

body.marketing-page .liff-showcase-layout { gap: clamp(30px, 5vw, 72px); }
body.marketing-page .liff-preview-option { gap: 14px; padding: 16px 10px; }
body.marketing-page .liff-preview-option strong { font-size: 16px; font-weight: 550; }
body.marketing-page .liff-preview-option small { font-size: 12px; }
body.marketing-page .liff-preview-option:is(:hover, .is-active, [aria-busy="true"]) { color: var(--sd-ink); background: var(--sd-accent-soft); }
body.marketing-page .liff-preview-option:is(:hover, .is-active) > span:last-child { color: var(--sd-accent-strong); }
body.marketing-page .liff-preview-option:focus-visible { outline-color: var(--sd-accent-strong); }
body.marketing-page .liff-device-stage { background: #edf5ef; border: 1px solid var(--sd-line); box-shadow: none; }
body.marketing-page :is(.liff-device-meta, .liff-device-stage figcaption) { color: var(--sd-muted); font-weight: 450; }
body.marketing-page .liff-device-meta i { background: var(--sd-accent); box-shadow: 0 0 0 4px rgba(25, 135, 84, .10); }
body.marketing-page #liff-preview-status { color: var(--sd-ink); border-color: var(--sd-accent-line); background: var(--sd-accent-soft); }

body.marketing-page .plan-card { padding: 32px; }
body.marketing-page .plan-card.highlight {
  --sd-ink: #fff8e7;
  --sd-muted: #d9d0bd;
  --sd-line: rgba(242, 209, 123, .22);
  --sd-accent: #f2d17b;
  --sd-accent-strong: #ffe3a0;
  --sd-accent-soft: #302817;
  --sd-accent-line: #b78a3f;
  color: var(--sd-ink) !important;
  background:
    radial-gradient(ellipse at 100% 0%, rgba(197, 151, 52, .14), transparent 45%),
    linear-gradient(145deg, #11110e, #201b11 55%, #0d0e0c) !important;
  border-color: var(--sd-accent-line) !important;
  box-shadow: 0 20px 52px rgba(74, 51, 8, .18), inset 0 1px 0 rgba(255, 239, 192, .18) !important;
}
body.marketing-page .plan-card.highlight b { color: var(--sd-ink) !important; }
body.marketing-page .plan-card.highlight :is(p, small, .panel-label),
body.marketing-page .plan-card .plan-price > span,
body.marketing-page .plan-card .plan-price-original s,
body.marketing-page .plan-card .plan-price-compare,
body.marketing-page .plan-card .plan-price-compare span { color: var(--sd-muted) !important; }
body.marketing-page .plan-card .plan-price-compare,
body.marketing-page .plan-card.highlight .plan-list li { border-color: var(--sd-line) !important; }
body.marketing-page .plan-price strong { font-size: 56px; font-weight: 550; }
body.marketing-page .plan-badge { color: var(--sd-muted); border: 1px solid var(--sd-line); background: var(--sd-paper); }
body.marketing-page .plan-badge.accent,
body.marketing-page .plan-card.highlight .plan-badge.accent { color: var(--sd-accent-strong) !important; background: var(--sd-accent-soft) !important; border-color: transparent !important; }
body.marketing-page .plan-icon,
body.marketing-page .plan-card.highlight .plan-icon { color: var(--sd-accent-strong) !important; background: var(--sd-accent-soft) !important; border-color: var(--sd-accent-line) !important; }
body.marketing-page .plan-list li { font-weight: 450; }
body.marketing-page .plan-list b { font-weight: 550; }
body.marketing-page .plan-list small { font-weight: 400; }
body.marketing-page .plan-action,
body.marketing-page .plan-card.highlight .plan-action { color: #fff !important; background: var(--sd-accent) !important; border-color: var(--sd-accent) !important; border-radius: 999px; }
body.marketing-page .plan-action:hover,
body.marketing-page .plan-card.highlight .plan-action:hover { background: var(--sd-accent-strong) !important; border-color: var(--sd-accent-strong) !important; }
body.marketing-page .plan-card.highlight h3,
body.marketing-page .plan-card.highlight .panel-label,
body.marketing-page .plan-card.highlight .plan-price strong { color: var(--sd-accent) !important; }
body.marketing-page .plan-card.highlight .plan-badge.accent,
body.marketing-page .plan-card.highlight .plan-icon {
  color: #251b08 !important;
  background: linear-gradient(135deg, #fae4aa, #cca052) !important;
  border-color: #ebcc84 !important;
  box-shadow: 0 5px 14px rgba(174, 121, 24, .14) !important;
}
body.marketing-page .plan-card.highlight .plan-action {
  color: #241b0b !important;
  background: linear-gradient(135deg, #f9e5ae, #d1a04b) !important;
  border-color: #ebcc84 !important;
  box-shadow: 0 10px 28px rgba(174, 121, 24, .20) !important;
}
body.marketing-page .plan-card.highlight .plan-action:hover {
  background: linear-gradient(135deg, #fff0c7, #e1b763) !important;
  border-color: #f6db99 !important;
}
body.marketing-page .liff-start-steps article { padding: 28px; border-radius: 14px; }
body.marketing-page .liff-start-steps article > span { color: var(--sd-accent-strong); background: transparent; border: 1px solid var(--sd-accent-line); border-radius: 50%; font: 12px/1 var(--site-mono); }
body.marketing-page :is(.liff-start-steps h3, .desktop-guide-callout h3) { font-size: 24px; font-weight: 550; }
body.marketing-page .desktop-guide-callout { background: #edf5ef; border: 1px solid var(--sd-line); }
body.marketing-page .chat-window { background: #fff !important; }
body.marketing-page .bubble { background: #eaf7ef !important; color: var(--sd-ink) !important; }
body.marketing-page .bubble.bot { background: #fff !important; color: var(--sd-muted) !important; }
body.marketing-page .result-card { background: #f0f7f2 !important; }
body.marketing-page .result-grid b { color: var(--sd-ink); }
body.marketing-page .copy-list > div { border: 0 !important; background: transparent !important; padding-inline: 0; }
body.marketing-page .dot { background: var(--sd-accent); }
body.marketing-page .cta-box { padding: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; }
body.marketing-page .cta-box h2 { max-width: 13ch; }
body.marketing-page .footer { background: var(--sd-paper) !important; border-top: 0; }
body.marketing-page .footer-copy { font-weight: 400; }
body.marketing-page .footer-legal a { font-weight: 450; }

@media (max-width: 1000px) {
  body.marketing-page .hero { min-height: 0; padding-top: 112px; }
  body.marketing-page .hero-inner { grid-template-columns: minmax(0, 1fr) minmax(0, .78fr); gap: 22px; }
  body.marketing-page .hero h1 { font-size: clamp(46px, 6.2vw, 68px); }
  body.marketing-page .hero-lead { font-size: 16px; }
  body.marketing-page .hero-actions { flex-wrap: wrap; }
  body.marketing-page .hero-phone-image { width: 100%; max-width: 370px; }
}
@media (max-width: 720px) {
  body.marketing-page .nav { gap: 10px; }
  body.marketing-page .nav-action { min-height: 36px; padding-inline: 11px; font-size: 12px; }
  body.marketing-page .brand-word { font-size: 13px; }
  body.marketing-page .hero { padding: 116px 0 58px; }
  body.marketing-page .hero::before { inset-inline: 12px; }
  body.marketing-page .hero-inner { width: calc(100% - 28px); grid-template-columns: minmax(0, 1fr); gap: 44px; }
  body.marketing-page .hero h1 { font-size: clamp(45px, 12.2vw, 78px); line-height: 1.08; }
  body.marketing-page .hero-lead { max-width: 550px; font-size: 16px; line-height: 1.75; }
  body.marketing-page .hero-actions { flex-direction: row; align-items: center; gap: 12px; }
  body.marketing-page .hero-actions .btn { min-height: 46px; padding-inline: 17px; }
  body.marketing-page .hero-phone-image { width: min(100%, 335px); }
  body.marketing-page .micro-line { margin-bottom: 26px; }
  body.marketing-page :is(.showcase, .liff-showcase, .membership, .liff-start, .messaging, .cta) { padding: 68px 0; }
  body.marketing-page .section-heading { gap: 20px; align-items: start; margin-bottom: 30px; }
  body.marketing-page :is(.section-heading h2, .message-copy h2, .cta-box h2) { font-size: clamp(33px, 9vw, 48px); line-height: 1.17; }
  body.marketing-page .section-heading > p { font-size: 14px; }
  body.marketing-page .feature-panel,
  body.marketing-page .feature-panel.large,
  body.marketing-page .plan-card { padding: 24px; }
  body.marketing-page .feature-panel h3 { font-size: 24px; }
  body.marketing-page .liff-preview-option { flex-shrink: 0; padding: 14px; }
  body.marketing-page .liff-device-stage { padding: 14px; }
  body.marketing-page .liff-start-steps article { padding: 24px; }
}
