:root {
  --gosul-ink: #0f172a;
  --gosul-muted: #475569;
  --gosul-line: #e2e8f0;
  --gosul-soft: #f8fafc;
  --gosul-brand: #2f8f4e;
  --gosul-brand-dark: #21713b;
  --gosul-radius: 20px;
  --gosul-mobile-gutter: max(16px, env(safe-area-inset-left));
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 76px;
}

body.gosul-site-enhanced {
  color: var(--gosul-ink);
  font-feature-settings: "palt" 1;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
}

body.gosul-site-enhanced *,
body.gosul-site-enhanced *::before,
body.gosul-site-enhanced *::after {
  box-sizing: border-box;
}

body.gosul-site-enhanced :where(h1, h2, h3, h4, p, li, dd, dt, th, td, summary, figcaption, blockquote, a, button) {
  min-width: 0;
  line-break: strict;
  overflow-wrap: break-word;
  word-break: normal;
}

html[lang^="ja"] body.gosul-site-enhanced :where(h1, h2, h3, h4, p, li, dd, dt, th, td, summary, figcaption, blockquote, a, button) {
  hanging-punctuation: allow-end;
}

@supports (word-break: auto-phrase) {
  html[lang^="ja"] body.gosul-site-enhanced :where(h1, h2, h3, h4, p, li, dd, dt, th, td, summary, figcaption, blockquote, a, button) {
    word-break: auto-phrase;
  }
}

body.gosul-site-enhanced :where(h1, h2, h3, h4) {
  text-wrap: balance;
}

.gosul-phrase {
  white-space: nowrap;
}

body.gosul-site-enhanced :where(p, li, dd, figcaption, blockquote) {
  text-wrap: pretty;
}

body.gosul-site-enhanced :where(img, svg, video, canvas, iframe) {
  max-width: 100%;
}

body.gosul-site-enhanced :where(a, button, summary, input, textarea, select):focus-visible {
  outline: 3px solid #86efac;
  outline-offset: 3px;
}

.gosul-public-header {
  border-bottom: 1px solid rgba(226, 232, 240, 0.92) !important;
  background: rgba(255, 255, 255, 0.94) !important;
  backdrop-filter: blur(14px);
}

.gosul-header-cta {
  display: inline-flex;
  min-height: 40px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  border-radius: 999px;
  background: var(--gosul-brand);
  padding: 0 15px;
  color: #fff !important;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none !important;
  box-shadow: 0 10px 24px -16px rgba(47, 143, 78, 0.75);
}

.gosul-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  border-radius: inherit;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.gosul-table-scroll:focus-visible {
  outline: 3px solid #86efac;
  outline-offset: 2px;
}

#gosul-mobile-signup-bar {
  display: none;
}

@media (max-width: 767px) {
  body.gosul-site-enhanced {
    max-width: 100%;
    overflow-x: hidden;
  }

  body.gosul-site-enhanced.has-gosul-mobile-action {
    padding-bottom: calc(82px + env(safe-area-inset-bottom)) !important;
  }

  body.gosul-site-enhanced :where(header, nav, main, section, article, aside, footer) {
    max-width: 100vw;
  }

  body.gosul-site-enhanced :where(.max-w-7xl, .max-w-6xl, .max-w-5xl, .max-w-4xl, .max-w-3xl, .grid, .flex) {
    min-width: 0;
  }

  .gosul-public-header {
    position: sticky !important;
    top: 0;
    z-index: 1000 !important;
    min-height: 62px;
  }

  .gosul-public-header > :where(div, nav) {
    width: 100% !important;
    min-height: 62px !important;
    max-width: 100vw !important;
    padding-inline: 16px !important;
    gap: 10px !important;
  }

  .gosul-public-header img {
    flex: 0 0 auto;
  }

  .gosul-public-header nav:not([data-mobile-menu]) {
    min-width: 0;
  }

  .gosul-public-header .gosul-header-cta {
    min-height: 40px;
    padding-inline: 14px;
    white-space: nowrap;
  }

  body.gosul-site-enhanced main > section > :where(div, article),
  body.gosul-site-enhanced main > :where(article, div[class*="max-w-"]) {
    max-width: 100%;
  }

  body.gosul-marketing main > section > [class*="py-24"],
  body.gosul-marketing main > section > [class*="py-20"] {
    padding-block: 3.5rem !important;
  }

  body.gosul-marketing main > section > [class*="py-16"],
  body.gosul-marketing main > section > [class*="py-14"] {
    padding-block: 3rem !important;
  }

  body.gosul-marketing main > section:first-child p[class*="text-lg"],
  body.gosul-marketing main > section:first-child p[class*="leading-9"] {
    font-size: 1rem !important;
    line-height: 1.9 !important;
  }

  body.gosul-site-enhanced main :where(article, aside, section)[class*="p-12"],
  body.gosul-site-enhanced main :where(article, aside, section)[class*="p-10"],
  body.gosul-site-enhanced main :where(article, aside, section)[class*="p-8"] {
    padding: 20px !important;
  }

  body.gosul-site-enhanced main :where(article, aside, section)[class*="rounded-["] {
    border-radius: var(--gosul-radius) !important;
  }

  body.gosul-site-enhanced h1 {
    max-width: 100%;
    font-size: clamp(1.72rem, 7.1vw, 2.08rem) !important;
    line-height: 1.32 !important;
    letter-spacing: -0.025em !important;
  }

  body.gosul-site-enhanced h2 {
    max-width: 100%;
    font-size: clamp(1.35rem, 5.6vw, 1.62rem) !important;
    line-height: 1.42 !important;
    letter-spacing: -0.018em !important;
  }

  body.gosul-site-enhanced h3 {
    font-size: clamp(1.08rem, 4.7vw, 1.25rem) !important;
    line-height: 1.5 !important;
    letter-spacing: -0.012em !important;
  }

  body.gosul-site-enhanced :where(p, li, dd) {
    line-height: 1.86;
  }

  html[lang^="ja"] body.gosul-site-enhanced :where(h1, h2, h3) br:not([data-preserve-break]),
  html[lang^="ja"] body.gosul-site-enhanced .mobile-hero-lead br:not([data-preserve-break]) {
    display: none;
  }

  html[lang^="ja"] body.gosul-site-enhanced :where(h1, h2, h3) :where(.block, .mobile-only > span),
  html[lang^="ja"] body.gosul-site-enhanced .mobile-hero-title > span,
  html[lang^="ja"] body.gosul-site-enhanced .mobile-hero-lead .mobile-only > span {
    display: contents !important;
  }

  html[lang^="ja"] body.gosul-site-enhanced .mobile-hero-title > .gosul-headline-line {
    display: block !important;
    white-space: nowrap;
  }

  html[lang^="ja"] body.gosul-site-enhanced .mobile-hero-title > span + span::before,
  html[lang^="ja"] body.gosul-site-enhanced .mobile-hero-lead .mobile-only > span + span::before {
    content: "";
  }

  body.gosul-blog-detail main {
    background: linear-gradient(180deg, #f7fbf8 0, #fff 420px);
  }

  body.gosul-blog-detail main > :where(article, div) {
    padding-inline: 16px !important;
  }

  body.gosul-blog-detail .article-hero-card {
    border-radius: 22px !important;
    padding: 20px !important;
  }

  body.gosul-blog-detail .article-hero-card h1 {
    margin-top: 18px !important;
  }

  body.gosul-blog-detail .article-hero-card p {
    margin-top: 16px !important;
    color: var(--gosul-muted) !important;
    font-size: 1rem !important;
    line-height: 1.86 !important;
  }

  body.gosul-blog-detail .prose {
    color: var(--gosul-muted);
    font-size: 1rem;
  }

  body.gosul-blog-detail .prose h2 {
    margin-top: 3rem !important;
    margin-bottom: 1.15rem !important;
    padding-left: 14px !important;
  }

  body.gosul-blog-detail .prose h3 {
    margin-top: 2.25rem !important;
    margin-bottom: 0.85rem !important;
  }

  body.gosul-blog-detail .prose p {
    margin-bottom: 1.35rem !important;
    color: var(--gosul-muted) !important;
    font-size: 1rem !important;
    line-height: 1.9 !important;
  }

  body.gosul-blog-detail .prose :where(ul, ol) {
    margin-block: 1rem 1.5rem;
    padding-left: 1.35rem !important;
  }

  body.gosul-blog-detail .prose :where(img, figure) {
    margin-block: 1.5rem !important;
  }

  body.gosul-blog-detail main a[class*="rounded-full"][class*="px-"],
  body.gosul-marketing main a[class*="rounded-full"][class*="px-6"],
  body.gosul-marketing main a[class*="rounded-full"][class*="px-7"] {
    min-height: 50px;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-wrap: balance;
  }

  body.gosul-blog-detail main :where(.flex.flex-col, [class*="sm:flex-row"]) > a[class*="rounded-full"] {
    width: 100%;
  }

  body.gosul-blog-index main :where(article, a[class*="rounded"], section[class*="rounded"]) {
    border-radius: 20px !important;
  }

  body.gosul-legal main {
    padding-top: 6rem !important;
    padding-bottom: 3rem !important;
  }

  body.gosul-legal main > p:first-of-type {
    margin-bottom: 1.75rem !important;
  }

  .gosul-table-scroll table {
    min-width: 620px;
  }

  #gosul-mobile-signup-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 99999;
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(7, 19, 38, 0.96);
    color: #fff;
    box-shadow: 0 -12px 30px rgba(15, 23, 42, 0.22);
    font-family: inherit;
    backdrop-filter: blur(16px);
  }

  .gosul-mobile-signup-copy {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    line-height: 1.35;
  }

  .gosul-mobile-signup-copy strong {
    overflow: hidden;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gosul-mobile-signup-copy small {
    margin-top: 2px;
    color: #cbd5e1;
    font-size: 10px;
    font-weight: 700;
  }

  .gosul-mobile-signup-action {
    display: inline-flex;
    min-height: 46px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--gosul-brand);
    padding: 0 17px;
    color: #fff !important;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
    box-shadow: 0 10px 22px rgba(47, 143, 78, 0.3);
  }

  body.gosul-home #main {
    display: flex;
    flex-direction: column;
  }

  body.gosul-home #main > .hero { order: 1; }
  body.gosul-home #main > .product-tour { order: 2; }
  body.gosul-home #main > .capability-bar { order: 3; }
  body.gosul-home #main > .problems { order: 4; }
  body.gosul-home #main > .value-section { order: 5; }
  body.gosul-home #main > .workflow { order: 6; }
  body.gosul-home #main > .features-detail { order: 7; }
  body.gosul-home #main > .dashboard-section { order: 8; }
  body.gosul-home #main > .usecases { order: 9; }
  body.gosul-home #main > .migration { order: 10; }
  body.gosul-home #main > .pricing { order: 11; }
  body.gosul-home #main > .ai-section { order: 12; }
  body.gosul-home #main > .trust-section { order: 13; }
  body.gosul-home #main > .faq { order: 14; }
  body.gosul-home #main > .resource-section { order: 15; }
  body.gosul-home #main > .final-cta { order: 16; }
}

@media (prefers-reduced-motion: reduce) {
  body.gosul-site-enhanced *,
  body.gosul-site-enhanced *::before,
  body.gosul-site-enhanced *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
